調用數據庫存儲過程
- <%
- Set Dataconn = Server.CreateObject("ADODB.Connection")
- '建立連接對象
- Dataconn.Open "DSN=SinoTrans;SERVER=APP_SERVER;UID=sa;PWD=;APP=Microsoft(R) Developer Studio;WSID=APP_SERVER;Regional=Yes"
- Set cmdTemp = Server.CreateObject("ADODB.Command")
- '建立命令對象
- Set rst = Server.CreateObject("ADODB.Recordset")
- '建立記錄集對象
- cmdTemp.CommandText = "dbo.pd_test" '存儲過程名稱
- cmdTemp.CommandType = 4
- '命令類別為4,表示為存儲過程
- Set cmdTemp.ActiveConnection = Dataconn
- Set tmpParam = cmdTemp.CreateParameter("Return Value", 3, 4, 4)
- cmdTemp.Parameters.Append tmpParam
- Set tmpParam = cmdTemp.CreateParameter("@BeginDate", 135, 1, 16, riqi)
- '創建輸入參數對象
- cmdTemp.Parameters.Append tmpParam
- rst.Open cmdTemp, , 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)
- %>