如何在 Active Server Page 中訪問 SQL Server

來源:互聯網
上載者:User
active|server|訪問 SQL Server
適用於
概要
本文介紹了如何使用“ActiveX 資料對象”(ADO) 在 ASP 指令碼中建立到 SQL Server 的串連,同時利用 ODBC 3.0 的串連池功能。






更多資訊
串連池
啟用 ODBC 串連池。
有關串連池的其他資訊以及有關如何啟用串連池功能的說明,請單擊下面的文章編號,以查看 Microsoft 知識庫中相應的文章:
164221 如何在 ODBC 應用程式中啟用串連池

ODBC DSN
使用“ODBC 管理器”,在 Microsoft Internet Information Server (IIS) 安裝在的電腦上建立一個“系統”資料來源名稱 (DSN)。一次指定串連屬性,然後在每個頁面上重複使用此屬性。例如,在 Global.asa 檔案的 Session_OnStart 事件中,將串連屬性定義為:
Session("ConnectionString") = "dsn=SQLSysDSN;uid=<username>;" & _ "pwd=<strong password>;DATABASE=pubs;APP=ASP Script"
確保下列所有條件都滿足:
“系統 DSN”定義中沒有選中受信任連接框。
SQL Server 安全模式不是“Windows NT 整合”。
在串連屬性中,uid 不為空白。
否則,到 SQL Server 的串連可能會失敗,並收到以下錯誤資訊:



Microsoft OLE DB provider for ODBC Drivers error '80004005'
[Microsoft][ODBC SQL Server Driver][SQL Server]Login failed- User:_
Reason:Not defined as a valid user of a trusted SQL Server connection.


Global.asa
是否使用 Global.asa 檔案是可選的。在其位置上,通常由此檔案建立的項目可以放到應用程式調用的第一頁上。假定 ASP 指令碼位於一個檔案夾中,該檔案夾在“網際網路服務管理員”中沒有定義為虛擬目錄,而是位於另一個虛擬目錄下面,那麼,包含 Session 變數和 DSN 定義的 Global.asa 檔案就必須保留在此虛擬目錄中。否則,將出現以下錯誤資訊:


Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Driver Manager] Data source name not found and no
default driver specified


ASP 指令碼中的串連
通過開啟和關閉到每個 Active Server Page 上的資料庫的串連來利用串連池。要開啟此串連,請在頁面的 <Body> 部分中鍵入以下語句:
<% Set OBJdbConnection = Server.CreateObject("ADODB.Connection") OBJdbConnection.Open Session("ConnectionString") %>
要關閉此串連,請將以下內容放到 </Body> 標記後:
<% OBJdbConnection.Close Set OBJdbConnection = Nothing %>
如果沒有象本文前面介紹的那樣正確定義串連設定,您可能會收到以下兩條錯誤資訊:



Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC SQL Server Driver][DBNMPNTW]Connection broken.
- 或 -




Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC SQL Server Driver]Communication link failure

此處是一個包含 Global.asa 和 Authors.asp 檔案的應用程式範例。此應用程式範例將返回名為 authors 的 pubs 表中的四列和所有記錄。

注意:您必須先將 UID <使用者名稱> 和 pwd =<強密碼> 更改為正確的值,然後才能運行此代碼。請確保該 UID 具有在資料庫中執行此操作所需的適當許可權。

Global.asa
<SCRIPT LANGUAGE=VBScript RUNAT=Server> Sub Session_OnStart Session("ConnectionString") = "DSN=SQLSysDSN;UID=<username>;PWD=<strong password>;" & _ "DATABASE=pubs;APP=ASP script" Session("ConnectionTimeout") = 15 Session("CommandTimeout") = 30 End Sub
Sub Session_OnEnd
End Sub </SCRIPT>
Authors.asp
<HTML> <HEAD> <TITLE>All Authors</TITLE> </HEAD> <BODY BGCOLOR="#FFFFFF">
<% Set OBJdbConnection = Server.CreateObject("ADODB.Connection") OBJdbConnection.ConnectionTimeout = Session("ConnectionTimeout") OBJdbConnection.CommandTimeout = Session("CommandTimeout") OBJdbConnection.Open Session("ConnectionString") Set SQLStmt = Server.CreateObject("ADODB.Command") Set RS = Server.CreateObject ("ADODB.Recordset") %>
<p> <table border="0" bordercolor="#000000"> <% SQLStmt.CommandText = "select * from authors" SQLStmt.CommandType = 1 Set SQLStmt.ActiveConnection = OBJdbConnection RS.Open SQLStmt
Do While Not RS.EOF %> <TR> <TD Width = 150 ALIGN=LEFT> <FONT SIZE=+1> <%= RS("au_id") %> </FONT></TD> <TD></TD> <TD Width = 150 ALIGN=LEFT> <FONT SIZE=+1> <%= RS("au_lname") %> </FONT></TD> <TD Width = 150 ALIGN=LEFT> <FONT SIZE=+1> <%= RS("au_fname") %> </FONT></TD> <TD Width = 150 ALIGN=LEFT> <FONT SIZE=+1> <%= RS("phone") %> </FONT></TD> </TR> <% RS.MoveNext Loop %> </table> <hr> <p> </BODY> <% OBJdbConnection.Close Set OBJdbConnection = Nothing %> </HTML>
有關 Active Server Pages 的更多資訊,請參見 IIS 伺服器上 ASP 安裝程式提供的路徑圖 (Roadmap)。
參考
有關 Microsoft Visual Basic .NET 編碼技術的更多資訊,請訪問以下 Web 網站:
http://www.microsoft.com/mspress/books/4909.asp
Coding Techniques for Microsoft Visual Basic .NET(Microsoft Visual Basic .NET 編碼技術)
Connell, John
Microsoft Press, 20



相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。