| |
|
| |
 |
|
asp中如何调用存储过程
|
|
| 日期:2005-7-27 8:48:40 来源:易特网络技术 编辑:黑鹰 点击: |
1 这也是最简单的方法,两个输入参数,无返回值: set connection = server.createobject("adodb.connection") connection.open somedsn connection.execute "procname varvalue1, varvalue2"
'将所有对象清为nothing,释放资源 connection.close set connection = nothing
2 如果要返回 recordset 集: set connection = server.createobject("adodb.connection") connection.open somedsn set rs = server.createobject("adodb.recordset") rs.open "exec procname varvalue1, varvalue2",connection
'将所有对象清为nothing,释放资源 rs.close connection.close set rs = nothing set connection = nothing
3 以上两种方法都不能有返回值,(recordset除外),如果要得到返回值,需要用command的方法。 首先说明,返回值有两种。一种是在存储过程中直接return一个值,就象c和vb的函数返回值那样; 另一种是可以返回多个值,存储这些值的变量名称需要在调用参数中先行指定。 这个例子要处理多种参数,输入参数,输出参数,返回记录集以及一个直接返回值(够全了吧?) 存储过程如下:
use pubs go
-- 建立存储过程 create procedure sp_pubstest
-- 定义三个参数变量,注意第三个,特别标记是用于输出 @au_lname varchar (20), @intid int, @intidout int output
as
select @intidout = @intid + 1
select * from authors where au_lname like @au_lname + '%'
--直接返回一个值 return @intid + 2
调用该存储过程的asp程序如下:
<%@ language=vbscript %> <% dim cmdsp dim adors dim adcmdspstoredproc dim adparamreturnvalue dim adparaminput dim adparamoutput dim adinteger dim ival dim oval dim adofield dim advarchar
‘这些值在 vb 中是预定义常量,可以直接调用,但在 vbscript 中没有预定义 adcmdspstoredproc = 4 adparamreturnvalue = 4 adparaminput = 1 adparamoutput = 2 adinteger = 3 advarchar = 200
ival = 5 oval = 3
'建一个command对象 set cmdsp = server.createobject("adodb.command")
'建立连结 cmdsp.activeconnection = "driver={sql server};server=(local);uid=sa;pwd=;database=pubs"
'定义command 对象调用名称 cmdsp.commandtext = "sp_pubstest"
'设置command调用类型是存储过程 (adcmdspstoredproc = 4) cmdsp.commandtype = adcmdspstoredproc
'往command 对象中加参数 '定义存储过程有直接返回值,并且是个整数,省缺值是4 cmdsp.parameters.append cmdsp.createparameter("return_value", adinteger, adparamreturnvalue, 4) '定义一个字符型输入参数 cmdsp.parameters.append cmdsp.createparameter("@au_lname", advarchar, adparaminput, 20, "m") '定义一个整型输入参数 cmdsp.parameters.append cmdsp.createparameter("@intid", adinteger, adparaminput, , ival) '定义一个整型输出参数 cmdsp.parameters.append cmdsp.createparameter("@intidout", adinteger, adparamoutput, oval)
'运行存储过程,并得到返回记录集 set adors = cmdsp.execute
'把每个记录打印出来,其中的字段是虚拟的,可以不用管 while not adors.eof
for each adofield in adors.fields response.write adofield.name & "=" & adofield.value & "<br>" & vbcrlf next response.write "<br>" adors.movenext wend
'打印两个输出值: response.write "<p>@intidout = “ & cmdsp.parameters("@intidout").value & "</p>" response.write "<p>return value = " & cmdsp.parameters("return_value").value & "</p>"
'大扫除 set adors = nothing set cmdsp.activeconnection = nothing set cmdsp = nothing %> |
上一篇:利用asp实现oracle数据记录的分页显示
下一篇:没有了
[发送给好友] [打印本页] [关闭窗口] [返回顶部] 转载请注明来源:http://www.iyit.net |
|
| 特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。 |
| 责任编辑: 黑鹰 |
投稿作者: 易特网络技术 |
| 信息来源: 易特网络技术 |
录入时间: 2005-7-27 8:48:40 |
| 浏览次数: |
投稿信箱: shtghy@163.com |
|
|
|
|