asp

位置:IT落伍者 >> asp >> 浏览文章

ASP存储过程的使用方法


发布日期:2022年08月08日
 
ASP存储过程的使用方法

使用Command对象和Parameter对象传递参数

本讲将主要使用Microsoft SQL Server数据库先建立一个连接文件AdoSQLasp备用以后用到时不再特别说明

<% AdoSQLasp

Option Explicit

ResponseExpires =

第一部分: 建立连接

Dim Cnn StrCnn

Set Cnn = ServerCreateObject(ADODBConnection)

StrCnn = Provider=sqloledb; User ID=sa; Password=; Initial Catalog=pubs; Data Source=ICBCZJP

CnnOpen StrCnn

%>

注意自己使用时要将Data Source设为你的数据库服务器所在的机器名

另外以前使用Access数据库时用Microsoft Access可以很方便的查看字段及数据而使用SQL Server数据库尤其是并不在数据库服务器而是在另一台机器上调试ASP脚本时要查看字段及数据便需另外安装工具这里向你提供一个工具Msqryexe(Microsoft Query)这个文件随Office安装一般位于目录Microsoft Office\Office

例wufasp

<%@ LANGUAGE=VBSCRIPT %>

<!#include file=AdoSQLasp>

<!#include file=adovbsinc>

<% wufasp

Dim cmdTest prmTest rsTest

创建 Command 对象

Set cmdTest = ServerCreateObject(ADODBCommand)

RecordsetCommand对象都可以通过ActiveConnection属性来连接Connection对象

cmdTestActiveConnection = Cnn

SQL命令 含两个参数 用 ? 表示

cmdTestCommandText = Update jobs Set job_desc = ? Where job_id = ?

设命令类型为 SQL 语句

cmdTestCommandType = adCmdText

Prepared 属性决定是否将 SQL 命令先行编译将其设为True可以加快运行

cmdTestPrepared = True

创建 Parameter 对象

Set prmTest=cmdTestCreateParameter(job_descadVarCharadParamInput网络)

将数据追加到 Parameters 数据集合中

cmdTestParametersAppend prmTest

Set prmTest = cmdTestCreateParameter(job_idadSmallIntadParamInput)

cmdTestParametersAppend prmTest

执行修改 – 不需要返回结果简单的使用cmdTestExecute 就可以了

cmdTestExecute

重新设置参数运行 – 便可修改另一条数据

cmdTestParameters(job_id) =

cmdTestParameters(job_desc) = 测试

cmdTestExecute

重新设置参数运行

cmdTest(job_id) =

cmdTest(job_desc) = 金融

cmdTestExecute

Set rsTest = CnnExecute(Select job_idjob_desc From jobs)

While Not rsTestEOF

ResponseWrite rsTest() & rsTest() & <br>

rsTestMoveNext

Wend

Cnnclose : Set prmTest = Nothing

Set cmdTest = Nothing: Set Cnn = Nothing

%>

分析

.Command对象的CreateParameter方法用来为SQL命令或存储过程建立参数对象共有五个参数(五个参数都是可选项)

第一个参数参数对象的名称

第二个参数参数对象的数据类型种类太多还是参考ADO帮助吧这里adVarChar(字符串值)adSmallInt( 字节带符号整型)

第三个参数参数类型可以是adParamInput(指示输入参数)adParamOutput( 指示为输出参数)adParamReturnValue(指示为返回值)adParamUnknown(指示参数类型无法确定)adParamInputOutput(指示为输入/输出参数)

第四个参数参数的数据长度最好指定为与数据库中对应字段长度相等以免使用时出错尤其数据类型为VarChar时如果是整型或日期型则不必提供该值

第五个参数参数的设置初值

.cmdTestParametersAppend方法增加一个Parameter对象到Parameters数据集合中从本例中也可看到如何使用多个参数

.从本例可以看到只需要重新设定输入参数便可执行对其他数据的修改非常方便这一思路在编程时也是最常用的方法之一

.重设参数既可以使用cmdTestParameters也可以省略为cmdTest(job_id)

在ASP中使用存储过程

什么是存储过程(存储过程位于数据库服务器中是一个SQL语句的集合可包含一个或多个SQL语句)怎样创建存储过程不属于本讲座的内容本讲座主要是举例说明在ASP中如何调用存储过程

使用存储过程的好处是大大的存储过程比在ASP脚本中运行SQL命令效率更高可以提高整体性能并减轻网络负载(减少了在网络服务器和数据服务器之间的交互)可以优化ASP代码和增强代码灵活性等等

(一)在存储过程中使用输入参数

本例中使用的存储过程为SQL Server自带的byroyalty里面的一条SQL语句非常简单无非是多了一个CREATE PROCEDURE byroyalty并且有一个输入参数为@percentage

CREATE PROCEDURE byroyalty @percentage int

AS

select au_id from titleauthor

where titleauthorroyaltyper = @percentage

serve by

例wufasp

<% @LANGUAGE = VBScript %>

<!#include file=AdoSQLasp>

<!#include file=adovbsinc>

<% wufasp

Dim cmdTest prmTest rsTest

Set cmdTest = ServerCreateObject(ADODBCommand)

cmdTestCommandText = byroyalty存储过程名

设命令类型为 存储过程

cmdTestCommandType = adCmdStoredProc

创建 Parameter 对象

Set prmTest = ServerCreateObject(ADODBParameter)

Type属性对应wufasp中的第二个参数

prmTestType = adInteger 字节的带符号整型

Direction属性对应wufasp中的第三个参数

prmTestDirection = adParamInput

Value属性对应wufasp中的第五个参数

prmTestValue =

cmdTestParametersAppend prmTest

Set cmdTestActiveConnection = Cnn

需要返回一个记录集故使用Set rsTest = cmdTestExecute

Set rsTest = cmdTestExecute

While Not rsTestEOF

ResponseWrite rsTest()& <br>

rsTestMoveNext

Wend

Cnnclose

Set rsTest = Nothing : Set prmTest = Nothing

Set cmdTest = Nothing: Set Cnn = Nothing

%>

CommandText属性既可以指定SQL命令也可以指定为存储过程或者是表名称

在本例中创建Parameter对象与wufasp略有不同其实仔细看看意思也是差不多的本例还有两个属性未用prmTestNameprmTestSize加上TypeDirection和Value对应于wufasp中的五个参数

(二)使用输出参数

从数据库表中取得一个记录或计算一个值时需要使用返回输出参数的存储过程为了举例先在SQL Server的pubs库中新建一存储过程OUTemploy该存储过程需要输入两个日期然后输出一个最大值

CREATE PROCEDURE OUTemploy

(

@job_lvl tinyint OUTPUT

@hire_date datetime

@hire_date datetime

)

AS

select @job_lvl = MAX(job_lvl) from employee

where hire_date >= @hire_date and hire_date <= @hire_date

有多种方法可以建立存储过程

.使用Microsoft SQL Server的Enterprise Manager打开后在左边的树目录中依次打开Console Root – Microsoft SQL Servers – SQL Server Group – ICBCZJP(Windows NT) – databases – pubs – stored procedure – New stored procedure输入存储过程后还可对其进行语法检测

.使用Microsoft SQL Server的Query Analyzer先连接数据库服务器并选择pubs数据库输入上面的存储过程并点击Execute Query(或按F)

.使用VB打开菜单视图/数据视图窗口右键单击数据链接/新建数据链接

.使用ASP脚本创建存储过程例wufasp

<% @LANGUAGE = VBScript %>

<!#include file=AdoSQLasp>

上一篇:ASP学习:不刷新页面筛选数据库中的数据

下一篇:ASP把汉字转化为拼音的函数