資料|資料庫|資料庫連接 ASP資料庫連接的實現
夏春濤
(解放軍資訊工程大學電子技術學院102教研室,河南 鄭州 450004)
(Email: xct-tom@tom.com)
摘 要:本文給出了ASP中資料庫連接的多種實現方法。
關鍵詞:ASP;ADO;OLE-DB;ODBC;資料庫連接
1 引言
ASP是目前最流行的Web程式設計技術之一,它使用ADO技術對資料庫進行存取。ADO是Microsoft目前主要的資料存取技術,它是Microsoft各種資料存取技術,如ODBC、DAO、RDO、OLE-DB演化發展的結果。
ADO是封裝了OLE-DB複雜介面的COM對象,它以極為簡單的COM介面來存取各種不同的資料。圖2是ADO資料存取的架構圖。從圖中可以看出,ADO可以直接藉由OLE-DB來存取不同資料來源的資料,也可以間接籍由ODBC來存取關係型資料來源的資料。本文針對這兩種方式初步探討ASP應用程式中資料庫連接的實現。
圖 1 ADO資料存取架構
Application/Browser
ADO
OLE-DB
ODBC
SQL Data
Non SQL Data
Mainframe and
Legancy Data
2 Connection對象
ADO中的Connection對象代表與底層資料供應程式的一個串連,它保持著資料供應程式的資訊。在ASP應用環境下,Connection對象代表從Web伺服器到資料庫伺服器的一個串連。Connection對象調用Open方法來實現與資料庫的串連,它的文法如下:
Connection.Open [ConnectionString],[UserID],[Password],[Options]
Open方法的參數及說明如表1:
表 1 Open方法的參數及說明
參 數
說 明
ConnectionString
包含串連細節的字串。可以是ODBC DSN的名稱、資料連結檔案的名稱或真實的串連細節。選擇性參數。
UserID
串連期間,使用者使用的名字。覆蓋連接字串中提供的任何使用者名稱。選擇性參數。
Password
使用者的口令。覆蓋連接字串中提供的任何口令。選擇性參數。
Options
可以是adAsyncConnect,指定非同步地建立串連。忽略這個參數,則建立一個同步串連。註:因為指令碼語言不能接收來自ADO的事件,所以非同步串連不用於ASP環境,一般忽略這個參數。
從表1可以看出, Open方法實現與資料庫連接的關鍵,是給出正確的ConnectionString。以下以SQL Server2000資料庫為例,給出各種串連方式下的ConnectionString。
3 OLE-DB串連方式
3.1 字串方式
ConnectionString="Provider=SQLOLEDB.1; Data Source=YourSrc;
UID=YourUid; PWD=YourPwd; Database=YourDB"
或
ConnectionString="Provider=SQLOLEDB.1; Data Source=YourSrc;
User ID=YourUid; Password=YourPwd; Initial Catalog=YourDB"
其中,Provider為服務於串連的底層OLE-DB資料供應程式的名稱;Data Source為服務於底層資料供應程式的資料來源名稱;UID或User ID為串連時使用的使用者名稱;PWD或Password為串連時使用的密碼;Database或Initial Catalog為位於資料庫伺服器上的一個特定資料庫。
3.2 資料連結檔案方式
建立一個空文字檔,將其副檔名改為.udl來建立一個資料連結檔案。雙擊該檔案開啟Data Link Properties對話方塊,在Provider頁選擇提供者(不要選擇基於ODBC的提供者,因為這樣實際上是間接藉由ODBC實現資料庫連接),在Connection頁指定實現串連的細節。使用資料連結檔案進行串連的ConnectionString如下:
ConnectionString="File Name=C:\YourFile.udl"
用記事本開啟資料連結檔案,可以看到第三行文本是一個連接字串,指定了串連的細節。如果在Connection頁選中了“Allow saving password”,則在該檔案中也會記錄使用者的密碼資訊。
4 ODBC串連方式
使用ODBC串連方式,首先要配置ODBC資料來源。ODBC資料來源配置成功後,就可以相應指定下面介紹的連接字串進行資料庫連接。
4.1 ODBC的系統DSN串連方式
ConnectionString="DSN=SysDSNName;UID=YourUid;PWD=YourPwd;Database=YourDB"
其中,DSN為系統DSN的名稱,其它參數與3.1中介紹的參數相同。
4.2 ODBC的檔案DSN串連方式
ConnectionString="FileDSN=FileDSNName;UID=YourUid;PWD=YourPwd;Database=YourDB"
其中,FileDSN為檔案DSN的名稱,其它參數與3.1中介紹的參數相同。
用記事本開啟相應的.dsn檔案(一般位於C:\Program Files\Common Files\ODBC\Data Sources目錄下),可以看到,類似於資料連結檔案,該檔案中也指定了串連的細節。
4.3 ODBC的無DSN串連方式
ConnectionString="Driver={SQL Server};Server=YourServer;
UID=YourUid;PWD=YourPwd;Database=YourDB")
此方式不用配置ODBC資料來源。其中,Driver為ODBC驅動程式名稱,Server為資料庫伺服器名稱,其它參數與3.1中介紹的參數相同。
4.4 資料連結檔案方式
首先,採用3.2中的方法建立資料連結檔案。但進行檔案配置時,在Provider頁中選擇基於ODBC的提供者——Microsoft OLE DB Provider for ODBC Drivers。此方式的ConnectionString與3.2中介紹的相同。
5 執行個體
下面是採用OLE-DB的字串方式,串連到SQL Server2000資料庫的範例程式碼:
<%
ConnectionString="Provider=SQLOLEDB.1; Data Source=YourSrc;
UID=YourUid; PWD=YourPwd; Database=YourDB";初始化連接字串
Set Conn=Server.CreateObject("ADODB.Connection") ;建立Connection對象
Conn.Open ConnectionString ;調用Open方法,建立串連
… ;進行資料存取操作
Conn.Close ;關閉串連
Set Conn=Nothing ;釋放Connection對象
%>
需要注意的是,應儘可能晚的建立串連,同時又儘可能早的關閉串連,這樣保證串連開啟的時間最短,可以充分發揮OLE-DB的串連緩衝池的作用,節省串連資源;另外,在實際應用中,為避免在每個ASP頁面中都輸入ConnectionString中的串連細節(這會給程式維護帶來麻煩),一般使用包含檔案或串連狀態來儲存ConnectionString,方法如下。