在asp中调用存储过程的几种方法
上一篇 / 下一篇 2007-05-26 10:03:50 / 个人分类:ASP
set connection = server.createobject("adodb.connection")51Testing软件测试网6Eis&f5~+N$a
connection.open someDSN51Testing软件测试网K,Ru\ o1Fs)Z
Connection.Execute "procname varvalue1, varvalue2"
@:h
V
bQ @L0h&B0'将所有对象清为nothing,释放资源51Testing软件测试网-tuA:cJeq
connection.close
tsr-]!g.}c
Ds0set connection = nothing51Testing软件测试网r)yq|o]&s{
51Testing软件测试网 X)e"y{vK
2 如果要返回 Recordset 集:51Testing软件测试网3x1`M"l"oNJ
set connection = server.createobject("adodb.connection")
m"[)Q1Z? U]8bTw0connection.open someDSN
#p[]&S3n?+{Y0set rs = server.createobject("adodb.recordset")
~Z[po~ h[G
a-p0rs.Open "Exec procname varvalue1, varvalue2",connection
B2K7DU$Y*BSQ0'将所有对象清为nothing,释放资源
bM#uLT6K%W9x0rs.close
(_q%h knq6I8l!U-Q0connection.close51Testing软件测试网$hJ
GH+m%J
set rs = nothing
2EcLR'Q ])[a'A0set connection = nothing51Testing软件测试网igWv8xIXw3Py$P;E
nlZ5IIK5U'y\"g#[0
C"z
WMNa0@03 以上两种方法都不能有返回值,(Recordset除外),如果要得到返回值,需要用Command的方法。51Testing软件测试网6IXd
_qc5`Z?A2?w
首先说明,返回值有两种。一种是在存储过程中直接return一个值,就象C和VB的函数返回值那样;另一种是可以返回多个值,存储这些值的变量名称需要在调用参数中先行指定。51Testing软件测试网!K
Jy:ZAatSS
这个例子要处理多种参数,输入参数,输出参数,返回记录集以及一个直接返回值(够全了吧?)51Testing软件测试网r
tS&`r3r
存储过程如下:51Testing软件测试网4U'wx b9HQhR]u0s.k
use pubs
G6L
^9XT0GO
-- 建立存储过程51Testing软件测试网qoRTc7om
create procedure sp_PubsTest
.`MX!Q$hM6U6t9B0-- 定义三个参数变量,注意第三个,特别标记是用于输出51Testing软件测试网K(e\'j+d
@au_lname varchar (20),
%F
u7GhU2lH-R(D~$L0@intID int,51Testing软件测试网i/Gs;vIU.}3Y.TBx[:k
@intIDOut int OUTPUT
*K&r!W9uw J;l*V W0AS51Testing软件测试网NT:r b SAPLn/k0O
51Testing软件测试网*F;eK%TUFSELECT @intIDOut = @intID + 151Testing软件测试网'|e,t!F_y#X$H4oGw
tZ X$G'H)e0SELECT *51Testing软件测试网1f"kM*Y1oS
FROM authors51Testing软件测试网AP]A9W%WyJ*u1t
WHERE au_lname LIKE @au_lname + '%'51Testing软件测试网"M2B N+QnGJ{
jJ^ Wn:x9z0--直接返回一个值51Testing软件测试网c\"Ha?1^
o,i
RETURN @intID + 2
?3k[Pi9i t4G0调用该存储过程的asp程序如下:
#w;m0T:t/map0<%@ Language=VBscrīpt %>51Testing软件测试网A4wW/@:s)G.sjS
<%51Testing软件测试网4u3l2k!Lu9pI
Dim CmdSP51Testing软件测试网 h R"b?v.|Q`
Dim adoRS
!w^Fo*~1[f"A&a9k0Dim adCmdSPStoredProc
)q]q4yV{
p-RQ0Dim adParamReturnValue
9EW6T{5XV\&n0Dim adParaminput51Testing软件测试网4ybkO$wOp&Kl
Dim adParamOutput
p*E6y&g|5pyC0Dim adInteger51Testing软件测试网[1k!I+WO!M#[
Dim iVal51Testing软件测试网c7Nz O;Xa
Dim oVal