首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

ASP 呼叫 SQL Server 視圖與預存程序:ADO Connection/Command/Recordset 完整實作範例

     編輯:關於SqlServer

經典 ASP (Active Server Pages) + ADO (ActiveX Data Objects) 存取 SQL Server 視圖與預存程序的標準模式。

核心 ADO 物件

  • Connection:管理資料庫連線。
  • Command:封裝指令文本/預存程序、參數集合。
  • Recordset:保存查詢結果集。

1. 建立 ODBC DSN

控制台 → [ODBC 資料來源] → 新增系統 DSN,指向 SQL Server,設定伺服器、資料庫、驗證方式。

2. 呼叫視圖 (視圖同表,直接查詢)

<%
Set DataConn = Server.CreateObject("ADODB.Connection")
DataConn.Open "DSN=SinoTrans;SERVER=APP_SERVER;UID=sa;PWD=;..."
Set cmdTemp = Server.CreateObject("ADODB.Command")
Set rst = Server.CreateObject("ADODB.Recordset")
cmdTemp.CommandText = "Customers"  -- 視圖名稱
cmdTemp.CommandType = 2  -- adCmdTable
Set cmdTemp.ActiveConnection = DataConn
rst.Open cmdTemp, , 1, 3  -- adOpenKeyset, adLockOptimistic
%>

3. 呼叫預存程序 (標準 Command 方式)

<%
Set DataConn = Server.CreateObject("ADODB.Connection")
DataConn.Open "DSN=SinoTrans;SERVER=APP_SERVER;UID=sa;PWD=;..."
Set cmdTemp = Server.CreateObject("ADODB.Command")
Set rst = Server.CreateObject("ADODB.Recordset")
cmdTemp.CommandText = "dbo.pd_test"
cmdTemp.CommandType = 4  -- adCmdStoredProc
Set cmdTemp.ActiveConnection = DataConn
Set tmpParam = cmdTemp.CreateParameter("Return Value", 3, 4, 4)  -- adInteger, adParamReturnValue
cmdTemp.Parameters.Append tmpParam
Set tmpParam = cmdTemp.CreateParameter("@BeginDate", 135, 1, 16, riqi)  -- adDBTimeStamp, adParamInput
cmdTemp.Parameters.Append tmpParam
rst.Open cmdTemp, , 1, 3
%>

4. 多結果集預存程序:改用 Connection.Execute

預存程序包含多個 SELECT 且邏輯互斥時,Command 會報錯「SELECT 陳述式過多」。解法:

<%
Set DataConn = Server.CreateObject("ADODB.Connection")
DataConn.Open "DSN=SinoTrans;SERVER=APP_SERVER;UID=sa;PWD=;..."
ss = "EXECUTE dbo.pd_test '" & riqi1 & "'"
Set rs = DataConn.Execute(ss)
%>
  • Execute 直接執行 T-SQL 批次,支援多結果集循序讀取 (NextRecordset)。

總結

ASP+ADO 存取 SQL Server 視圖/預存程序的標準模式:Connection → Command → Recordset。視圖視同表 (adCmdTable);預存程序用 adCmdStoredProc + 參數集合;多結果集改用 Connection.Execute。B/S 架構下將商業邏輯下沉至預存程序,ASP 僅負責呈現,實現關注點分離。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved