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)
%>