ASP调用SQLSERVER存储程序
出处http://www.bmj2000.com/vb/techniccolumn/subDetail.asp?MainId=2&BoardId=asp&ItemId=%CA%FD%BE%DD%BF%E2%B2%D9%D7%F7&RecId=2216
调用数据库存储过程
<%
SetDataconn=Server.CreateObject("ADODB.Connection")
'建立连接对象
Dataconn.Open"DSN=SinoTrans;SERVER=APP_SERVER;UID=sa;PWD=;APP=Microsoft(R)DeveloperStudio;WSID=APP_SERVER;Regional=Yes"
SetcmdTemp=Server.CreateObject("ADODB.Command")
'建立命令对象
Setrst=Server.CreateObject("ADODB.Recordset")
'建立记录集对象
cmdTemp.CommandText="dbo.pd_test"'存储过程名称
cmdTemp.CommandType=4
'命令类别为4,表示为存储过程
SetcmdTemp.ActiveConnection=Dataconn
SettmpParam=cmdTemp.CreateParameter("ReturnValue",3,4,4)
cmdTemp.Parameters.AppendtmpParam
SettmpParam=cmdTemp.CreateParameter("@BeginDate",135,1,16,riqi)
'创建输入参数对象
cmdTemp.Parameters.AppendtmpParam
rst.OpencmdTemp,,1,3
'生成查询结果
%>
这里调用的存储过程为pd_test,这种是ADO中提供的标准方法,但存在一个问题,就是当在存储过程中有两个以上的SELECT语句,但从逻辑上又不可能同时执行的时候,ADO会提示你存储过程中SELECT语句太多,解决方法是直接用ADO的CONNECTION对象的EXECUTE方法直接执行存储过程,如下:
<%
SetDataconn=Server.CreateObject("ADODB.Connection")
'建立连接对象
Dataconn.Open"DSN=SinoTrans;SERVER=APP_SERVER;UID=sa;PWD=;APP=Microsoft(R)DeveloperStudio;WSID=APP_SERVER;Regional=Yes"
ss="EXECUTEdbo.pd_test"&"'"&riqi1&"'"
Setrs=dataconn.Execute(ss)
%>