分享
 
 
 

ASP中利用Command对象调用MSSQL存储过程属性简述

王朝mssql·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

很多文章都介绍过,在ASP中调用MSSQL存储过程(Stored Procedure)的介绍。可以使用两种方法:利用recordset对象,或者直接用command对象。

recordset对象相当简单,熟悉Asp的都能上手操作,这里简单做个实例:

Mssql 中建立存储过程SP_UserList :

CREATE PROCEDURE SP_UserList

@Uid int

AS

select * from Users where Uid = @Uid

return

GO

在SQL Server中执行存储过程:

declare @Uid int

execute SP_UserList 1

使用recordset对象调用:

Uid = 1

set rs=server.createobject("adodb.recordset")

sql = "exec SP_UserList "&Uid&""

rs.open sql,conn,1,1

或者:

Uid = 1 '存储过程的输入参数,为简化程序, 直接设置该值

sql = "SP_UserList "&Uid&""

Set rs = Conn.Execute(sql) '或者Set rs = Conn.Execute("exec SP_UserList "&Uid&"")

如果改用command对象来调用存储过程,则必须先加载adovbs.inc文件(文件adovbs.inc可在C:\Program Files\Common Files\System\ADO下找到):

<!--必须加载adovbs.inc文件,否则将出错-->

<!--#include file="adovbs.inc"-->

'-----建立Connection对象----------

set Conn = Server.CreateObject("Adodb.connection")

Conn.Open "driver={sql server};server=localhost;uid=sa;pwd=;database=Mydbase;"

Uid = 1

'-----建立Command对象-----------

set Comm = server.createobject("adodb.command")

Comm.ActiveConnection = Conn

Comm.CommandText = "SP_UserList" '存储过程名称,指定要执行的是一个存储过程

Comm.CommandType = 4 'adCmdStoredProc = 4 ,其为Stored Procedure

'-----准备 Stored Procedure 的参数-------

Comm.Parameters.Append Comm.CreateParameter("@Uid",adInteger,adParamInput,4,Uid) '命令格式Set parameter = command.CreateParameter (Name, Type, Direction, Size, Value)

'-----或者使用下列的方法定义 Stored Procedure 的参数:先创建输入参数对象,然后把参数加到参数集合-------

'Set CommFirstParam = Comm.CreateParameter("@Uid",adInteger,adParamInput,4,Uid) '创建输入参数对象

'Comm.Parameters.Append CommFirstParam '把参数加到参数集合

'-----执行存储过程----------------------

Comm.Execute

'-----下面输出参数结果----------------------

response.write Comm.Parameters("@Uid")

最后关闭command对象:Set Comm = Nothing。如果准备 Stored Procedure 的参数中采用的是创建输入参数对象的方法,则在最后还必须关闭对象:Set CommFirstParam = Nothing

再次提示一下,在使用command调对存储过程时,必须预先使用include加载adovbs.inc文件,否则肯定出错!!

下列是对Command对象中使用的各属性的描述。

1、ActiveConnection 属性:指示指定的 Command 或 Recordset 对象当前所属的 Connection 对象。

2、CommandText 属性:包含要根据提供者发送的命令的文本。设置或返回包含提供者命令(如 SOL 语句、表格名称或存储的过程调用)的字符串值。默认值为 ""(零长度字符串)。

3、CommandType 属性:指示 Command 对象的类型。

设置和返回值:

AdCmdText:将 CommandText 作为命令或存储过程调用的文本化定义进行计算。

AdCmdTable:将 CommandText 作为其列全部由内部生成的 SQL 查询返回的表格的名称进行计算。

AdCmdTableDirect:将 CommandText 作为其列全部返回的表格的名称进行计算。

AdCmdStoredProc:将 CommandText 作为存储过程名进行计算。

AdCmdUnknown:默认值。CommandText 属性中的命令类型未知。

adCmdFile:将 CommandText 作为持久 Recordset 文件名进行计算。

AdExecuteNoRecords:指示 CommandText 为不返回行的命令或存储过程(例如,插入数据的命令)。如果检索任意行,则将丢弃这些行且并不返回。它总是与 adCmdText 或 adCmdStoredProc 进行组合。

4、CreateParameter 属性:使用指定属性创建新的 Parameter 对象。返回 Parameter 对象。

语法:Set parameter = command.CreateParameter (Name, Type, Direction, Size, Value)

参数描述:

Name:可选,字符串,代表 Parameter 对象名称。

Type: 可选,长整型值,指定 Parameter 对象数据类型。关于有效设置请参见 Type 属性。

Direction:可选,长整型值,指定 Parameter 对象类型。关于有效设置请参见 Direction 属性。

Size:可选,长整型值,指定参数值最大长度(以字符或字节数为单位)。

Value: 可选,变体型,指定 Parameter 对象的值。

在上例使用Command对象时,在“准备 Stored Procedure 的参数”中,我们还可以这样实现:

Comm.Parameters.Append Comm.CreateParameter("Uid",adInteger,adParamInput,4)

Comm("Uid")=1

这样我们在使用存储过程(Stored Procedure) 参数的时候,就可以使用三种方法来实现了。

在ASP中使用存储过程使用到的各个属性我们就简单介绍到这里。在存储过程使用过程中,除了可传递输入参数外,还可以使用返回码和输出参数返回值,由于篇幅关系,笔者不再举例,有兴趣可去参考VB6.0的MSDN文档中有关ADO的部分和SQL Server 2000的帮助文档。

附:存储过程的书写格式

CREATE PROCEDURE [拥有者.]存储过程名[;程序编号]

[(参数#1,…参数#1024)]

[WITH

{RECOMPILE | ENCRYPTION | RECOMPILE, ENCRYPTION}

]

[FOR REPLICATION]

AS

程序行

Type 属性

adDBTimeStamp 135 日期时间数据类型

adDecimal 14 十进制整数值

adDouble 5 双精度小数值

adError 10 系统错误信息

adGUID 72 全域性唯一识别字(Globally unique identifier)

adDispath 9 COM/OLE自动对象(Automation Object)

adInteger 3 4字节有符号整数

adIUnknown 13 COM/OLE对象

adLongVarBinary 205 大型2字节值

adLongVarChar 201 大型字符串值

adLongVarWChar 203 大型未编码字符串

adNumeric 131 十进制整数值

adSingle 4 单精度浮点小数

adSmallInt 2 2字节有符号整数

adTinyInt 16 1字节有符号整数

adUnsignedBigInt 21 8字节无符号整数

adUnsignedInt 19 4字节无符号整数

adUnsignedSmallInt 18 2字节无符号整数

adUnsignedTinyInt 17 1字节无符号整数

adUserDefined 132 用户自定义数据类型

adVariant 12 OLE对象

adVarBinary 204 双字节字符变量值

adVarChar 200 字符变量值

advarchar 202 未编码字符串变量值

adWchar 130 未编码字符串

Direction 属性

名称值 整数值 功能

adParamInput 1 允许数据输入至该参数当中

adParamOutput 2 允许数据输出至该参数当中

adParamInputOutput 3 允许数据输入、输出至该参数当中

adparamReturnValue 4 允许从一子程序中返回数据至该参数当中

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有