存储过程使用大全二

作者:袖梨 2022-06-30

Set cmdTemp=Sever.CreateObject("ADODB.Command")
’建立命令对象
Set cmdTemp.ActiveConnection=DataConn
cmdTemp.CommandType=adCMdStoredProc 
’指定要执行的是一个存储过程
cmdTemp.CommandText="sp_CheckPass" 
’存储过程名称
Set tmpFirstParam=cmdTemp.CreateParameter
("UserName",adVarChar,adParamIntput,30) 
’创建输入参数对象 
cmdTemp.Parameters.Append.tmpFirstParam 
’把参数加到参数集合
Set tmpSecondParam=cmdTemp.CreateParameter
("UserPwd",adVarChar,adParamInput,30)
cmdTemp.ParaMeters.Append tmpSecondParam
Set tmpThirdParam=cmdTemp.CreateParameter
("RetValue",adChar,adParamOutput,8) 
’创建返回参数对象
cmdTemp.Parameters.Append tmpThirdParam
cmdTemp("UserName")=Request.FORM("UserName")
’取得输入参数 
cmdTemp("UserPwd")=Request.FORM("UserPwd")
cmdTemp.Execute ’执行存储过程
% >
The Check Result is < %=cmdTemp("RetValue")% > 
’输出返回值
<%DataConn.Close ’关闭数据库连接%>
//用户输入界面

< TITLE>Registration Page 

请输入用户名和密码:

 

用户名: 


密 码: 





----   在这个例子中,首先创建了命令对象的一个实例。接着,ActiveConnection属性把命令和一个打开的连接联系在一起。CommandText属性指定要执行的存储过程名。CommandType属性为adCMDStoredProc属性,指明该命令是一个存储过程的定义。而为了得到存储过程的返回状态值必须用命令对象的CreateParameter()方法建立参数。本例中CreateParameter()方法有四个参数: 
---- 第一个参数为新参数指定一个名字; 
---- 第二个参数指定数据类型; 
---- 第三个参数指定新参数的类型。在此例中,常量adParamReturnValue指明该参数是一个返

 

---- 回参数。常量adParamInput则指明该参数是一个输入参数; 
---- 第四个参数指定了每个参数的最大长度,特别是当建立的参数是变长度数据类型,如
---- VARCHAR型时,就必须指定一个最大长度。 
---- 本例中用CreateParameter()方法建立了三个参数对象。其中两个输入参数,一个输出参数。建立了任何新参数之后,都必须把它添加到命令对象的Parameters集合中。Append方法用来把新参数添加到这个集合中。最后,调用Execute方法执行存储过程。用户输入的用户名和密码被传递给存储过程。如果表中存在这个名字-密码组合,则报告该密码为Pass,否则报告该密码为Invalid。
asp开发bs架构的三层系统,对于中小结构的系统把业务逻辑放在sqlserver的存储过程里面是一个很好的实现方法,但这么做出现了一个asp客户端和数据库存储过程之间配合调试的不方便.
实际开发中我写了下面一个函数,自动把asp端传给数据库的参数取出,自动生成符合sqlserver查询分析器的规则的存储过程执行命令串,放在textarea控件里,可以从页面直接复制到查询分析器里进行存储过程调试,下面就是程序.
‘==================================================================’
dim dsn ‘数据源
dim storename ‘存储过程名
dim con ‘Connection对象
dim cmd ‘Command对象
dim rs ‘Recordset 对象
set con=server.createobject(“ADODB.Connection”)
con.open dsn
set cmd=server.createobject("ADODB.Command") 
set cmd.ActiveConnection=Con
cmd.CommandText= storename 
cmd.Commandtype=adCmdStoredProc
cmd.Parameters.Append cmd.CreateParameter("@State",adInteger,adParamInput,4) 
cmd.Parameters.Append cmd.CreateParameter("@WhereT",adVarChar,adParamInput,200) 
cmd.Parameters.Append cmd.CreateParameter("@BranchType",adVarChar,adParamInput,50) 
cmd("@State") = 1 
cmd("@WhereT")=”2”
cmd("@BranchType")=”3”
getpmt(cmd) ‘获取存储过程的参数
set rs=server.CreateObject("adodb.recordset") 
rs.CursorType =3 
rs.LockType =3 
rs.CursorLocation =3 
set rs.Source =cmd 
rs.Open
‘======================================================’
‘ 形成存储过程的函数
‘=======================’
‘ 输入参数 a= command对象
‘=======================’
sub getpmt(a)
b=a.CommandText
b=replace(b,"?","")
b=replace(b,",","")
b=replace(b,"}","")
b=replace(b,"{","")
b=replace(b," ","")
b=replace(b,"call","")
b=replace(b,"(","")

 

相关文章

精彩推荐