欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
ASP技術(shù)文章-訪(fǎng)問(wèn)數據源
訪(fǎng)問(wèn)數據源

本文作者:不詳
所屬分類(lèi):ASP入門(mén)(微軟版)
加入時(shí)間:2004-3-15
點(diǎn)擊次數:7014


ActiveX 數據對象 (ADO) 是一種既易于使用又可擴充的技術(shù),用來(lái)將數據庫訪(fǎng)問(wèn)添加到您的 Web 頁(yè)可以使用 ADO 編寫(xiě)簡(jiǎn)潔和可升級的腳本以連接到與 OLE DB 兼容的數據源,如數據庫、電子表格、順序數據文件或電子郵件目錄。OLE DB 是一個(gè)系統級的編程接口,它提供一套標準的 COM 接口,用來(lái)展示數據庫管理系統的功能。使用 ADO 的對象模型,您可以輕松地(使用 VBScript 或 JScript 等腳本語(yǔ)言)訪(fǎng)問(wèn)這些接口并將數據庫功能添加到您的 Web 應用程序中。另外,您還可以使用 ADO 訪(fǎng)問(wèn)與開(kāi)放式數據庫互連 (ODBC) 兼容的數據庫。

 

如果您是一位對數據庫互連知識有一定了解的腳本編寫(xiě)者,您將會(huì )發(fā)現 ADO 的命令語(yǔ)法很簡(jiǎn)單,而且很容易使用。如果您是一位經(jīng)驗豐富的開(kāi)發(fā)人員,您將會(huì )非常欣賞 ADO 提供的這種可升級的對各種數據源的高性能訪(fǎng)問(wèn)。

關(guān)于 ADO 的詳細信息,請訪(fǎng)問(wèn) Microsoft 通用數據訪(fǎng)問(wèn) (UDA) Web 站點(diǎn) http://www.microsoft.com/data/。

創(chuàng )建連接字符串
創(chuàng )建 Web 應用程序的第一步是給 ADO 提供一種定位并識別數據源的方法。這是通過(guò)“連接字符串”來(lái)完成的,連接字符串是一系列用分號分隔的參數,用來(lái)定義諸如數據源提供者和數據源位置等參數。ADO 使用連接字符串來(lái)識別 OLE DB “提供者”并將提供者指向數據源。提供者是一個(gè)組件,用來(lái)描述數據源并以行集合的形式將信息展示給應用程序。

下表列出了幾個(gè)通用數據源的 OLE DB 連接字符串:

數據源 OLE DB 連接字符串
Microsoft Access Provider=Microsoft.Jet.OLEDB.4.0;Source=指向 .mdb 文件的物理路徑
Microsoft SQL Server Provider=SQLOLEDB.1;Source=指向服務(wù)器上數據庫的路徑
Oracle Provider=MSDAORA.1;Source=指向服務(wù)器上數據庫的路徑
Microsoft Indexing Service Provider=MSIDXS.1;Source=指向文件的路徑

為了提供向后兼容,ODBC 的 OLE DB 提供者支持 ODBC 連接字符串語(yǔ)法。下表列出了通常使用的 ODBC 連接字符串:

數據源驅動(dòng)程序 ODBC 連接字符串
Microsoft Access Driver={Microsoft Access Driver (*.mdb)};DBQ=指向 .mdb 文件的物理路徑
SQL Serverr Driver={SQL Server};SERVER=指向服務(wù)器的路徑
Oracle Driver={Microsoft ODBC for Oracle};SERVER=指向服務(wù)器的路徑
Microsoft Excel Driver={Microsoft Excel Driver (*.xls)};DBQ=指向 .xls 文件的物理路徑; DriverID =278
Microsoft Excel 97 Driver={Microsoft Excel Driver (*.xls)};DBQ=指向 .xls 文件的物理路徑;DriverID=790
Paradox Driver={Microsoft Paradox Driver (*.db)};DBQ=指向 .db 文件的物理路徑; DriverID=26
文本 Driver={Microsoft Text Driver (*.txt;*.csv)}; DefaultDir=指向 .txt 文件的物理路徑
Microsoft Visual FoxPro®(帶有一個(gè)數據庫容器) Driver={Microsoft Visual FoxPro Driver};SourceType=DBC;SourceDb=指向 .dbc 文件的物理路徑
Microsoft Visual FoxPro(不帶數據庫容器) Driver={Microsoft Visual FoxPro Driver};SourceType=DBF;SourceDb=指向 .dbf 文件的物理路徑


注意 (使用 UNC 路徑引用位于遠程計算機上的數據源的)連接字符串可能造成潛在的安全問(wèn)題。要禁止對您的數據源進(jìn)行未授權訪(fǎng)問(wèn),可為需要訪(fǎng)問(wèn)數據的計算機創(chuàng )建 Windows 賬號,然后對數據源應用適當的 NTFS 權限。詳細信息,請參閱使用 NTFS 保護文件。

設計 Web 數據應用程序時(shí)應考慮的高級問(wèn)題
由于性能和可靠性的原因,我們強烈推薦,在配置數據驅動(dòng) Web 應用程序(需要能滿(mǎn)足大約 10 個(gè)以上并發(fā)用戶(hù)同時(shí)進(jìn)行高要求的訪(fǎng)問(wèn))時(shí),使用客戶(hù)端服務(wù)器數據庫引擎。雖然 ADO 適用于與 OLE DB 兼容的任何數據源,但經(jīng)過(guò)廣泛的測試,主要設計為與客戶(hù)端服務(wù)器數據庫(如 Microsoft SQL Server 或 Oracle)一起工作。

ASP 支持共享文件數據庫(Microsoft Access 或 Microsoft FoxPro)作為有效的數據源。雖然在 ASP 文檔中有些示例使用了“共享文件”數據庫,但我們還是建議這些類(lèi)型的數據庫引擎只用于開(kāi)發(fā)目的或有限的開(kāi)發(fā)方案中。共享文件數據庫可能不如客戶(hù)端服務(wù)器數據庫更適合于高要求和高質(zhì)量的 Web 應用程序。

如果正在開(kāi)發(fā) ASP 數據庫應用程序,并且該程序將連接到遠程 SQL Server 數據庫,您還應該注意以下幾點(diǎn):

選擇 SQL Server 連接方案 要訪(fǎng)問(wèn)遠程 SQL Server 數據庫,可以選擇 TCP/IP 套接字方法或已命名管道方法。使用已命名管道,必須在建立連接之前由 Windows 對數據庫客戶(hù)加以驗證,以防止運行已命名管道的遠程計算機拒絕那些在該計算機上具有適當 SQL Server 訪(fǎng)問(wèn)證書(shū)、但沒(méi)有 Windows 用戶(hù)賬號的用戶(hù)的訪(fǎng)問(wèn)。作為另一個(gè)選擇,使用 TCP/IP 套接字的連接將直接連到數據庫服務(wù)器,而不通過(guò)中間計算機進(jìn)行連接。如果通過(guò)中間計算機,則與使用已命名管道類(lèi)似。而且由于使用 TCP/IP 套接字的連接會(huì )直接連到數據庫服務(wù)器,所以用戶(hù)可以通過(guò) SQL Server 驗證而不是 Windows 驗證來(lái)獲得訪(fǎng)問(wèn)。
ODBC 80004005 錯誤 如果訪(fǎng)問(wèn) SQL Server 的連接方案沒(méi)有正確設置,則正在查看數據庫應用程序的用戶(hù)可能會(huì )收到 ODBC 80004005 錯誤的消息。要糾正這種情況,可使用本地的已命名管道連接代替網(wǎng)絡(luò )的已命名管道連接,但 SQL Server 與 IIS 需在同一計算機上運行。Windows 2000 安全規則不會(huì )受到影響,因為此管道是本地連接而不是網(wǎng)絡(luò )連接,它可以由匿名用戶(hù)賬號來(lái)模擬。同樣,在 SQL Server 連接字符串(在 Global.asa 文件或網(wǎng)頁(yè)級腳本中)中,將參數 SERVER=server name 更改為 SERVER=(local)。關(guān)鍵字 (local) 是由 SQL Server ODBC 驅動(dòng)程序識別的特殊參數。如果該解決方案無(wú)法工作,那么請在 IIS 和 SQL Server 之間嘗試使用非驗證協(xié)議,如 TCP/IP 套接字。當 SQL Server 在本地或遠程計算機上運行時(shí),該協(xié)議將能夠工作。
注意 為了在連接到遠程數據庫時(shí)提高性能,請使用 TCP/IP 套接字。

SQL Server 安全 如果使用 SQL Server 的“集成”或“混合”安全特性,并且 SQL Server 數據庫駐留在遠程服務(wù)器上,那么您將無(wú)法使用集成的 Windows 驗證。特別地,您無(wú)法將集成的 Windows 驗證證書(shū)發(fā)送給遠程計算機。這意味著(zhù)您不得不使用基本驗證,該驗證需要用戶(hù)提供用戶(hù)名和密碼信息。
有關(guān)這些問(wèn)題的詳細信息,請訪(fǎng)問(wèn)位于 http://www.microsoft.com/china/support/ 的 Microsoft 產(chǎn)品支持服務(wù) Web 站點(diǎn)。

連接到數據源
ADO 提供了“Connection”對象,用于建立與管理應用程序和 OLE DB 兼容數據源或 ODBC 兼容數據庫之間的連接。“Connection”對象的屬性和方法可以用來(lái)打開(kāi)和關(guān)閉數據庫連接,并發(fā)布對更新信息的查詢(xún)。

要建立數據庫連接,首先必須創(chuàng )建“Connection”對象實(shí)例。例如,下面的腳本創(chuàng )建“Connection”對象實(shí)例,接著(zhù)打開(kāi)一個(gè)連接:

<%
'創(chuàng )建 connection 對象
Set cnn = Server.CreateObject("ADODB.Connection")
'使用 OLE DB 連接字符串打開(kāi)連接
cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\MarketData\ProjectedSales.mdb"
%>
注意 連接字符串在等號 (=) 的左右并不包含空格。

在這種情況下,“Connection”對象的“Open”方法將引用連接字符串。

使用 Connection 對象執行 SQL 查詢(xún)
使用“Connection”對象的“Execute”方法可以將命令發(fā)布到數據源,如結構化查詢(xún)語(yǔ)言 (SQL) 查詢(xún)。(SQL 是與數據庫進(jìn)行通信的工業(yè)標準語(yǔ)言,定義了用來(lái)檢索和更新信息的命令。)“Execute”方法可以接收參數,用來(lái)指定命令(或查詢(xún))、受影響的數據記錄數和所使用命令的類(lèi)型。

下面腳本使用“Execute”方法以 SQL “INSERT”命令的形式發(fā)布查詢(xún),該命令用來(lái)將數據插入指定的數據庫表中。在這種情況下,腳本塊將名字“Jose Lugo”插入到名為“Customers”的數據庫表中。

<%
'定義 OLE DB 連接字符串。
strConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Data\Employees.mdb"

'例示 Connection 對象并打開(kāi)數據庫連接。
Set cnn = Server.CreateObject("ADODB.Connection")
cnn.Open strConnectionString

'定義 SQL SELECT 語(yǔ)句。
strSQL = "INSERT INTO Customers (FirstName, LastName) VALUES ('Jose','Lugo')"

'使用 Execute 方法將 SQL 查詢(xún)發(fā)布到數據庫。
cnn.Execute strSQL,,adCmdText + adExecuteNoRecords
%>
注意,在用來(lái)執行查詢(xún)的語(yǔ)句中指定了兩個(gè)參數:adCmdText 和 adExecuteNoRecords??蛇x參數 adCmdText 指定命令類(lèi)型,說(shuō)明提供者必須將此查詢(xún)語(yǔ)句(這里是 SQL 查詢(xún)語(yǔ)句)評估為命令的文本定義。adExecuteNoRecords 參數指示 ADO 在沒(méi)有結果返回到應用程序時(shí)不要創(chuàng )建數據記錄集。此參數只用于定義為文本定義(如 SQL 查詢(xún))的命令類(lèi)型,或已存儲的數據庫過(guò)程。雖然 adCmdText 和 adExecuteNoRecords 是可選參數,但在使用“Execute”方法增強數據應用程序性能時(shí)應指定這兩個(gè)參數。

要點(diǎn) ADO 參數,如 adCmdText,需要在腳本中先定義然后再使用。一個(gè)方便的定義參數的方法是使用“組件類(lèi)型庫”,它是包含所有 ADO 參數定義的文件。要實(shí)施組件類(lèi)型庫,首先應聲明它。將下面的 <METADATA> 標記添加到 .asp 文件或 Global.asa 文件中以聲明 ADO 類(lèi)型庫:

<!--METADATA NAME="Microsoft ActiveX Data Objects 2.5 Library" TYPE="TypeLib" UUID="{00000205-0000-0010-8000-00AA006D2EA4}"-->
有關(guān)實(shí)施組件類(lèi)型庫的詳細信息,請參閱使用變量和常量主題中的使用常量部分。

除了 SQL 的 INSERT 命令外,還可以使用 SQL 的 UPDATE 和 DELETE 命令來(lái)更改和刪除數據庫信息。

使用 SQL 的 UPDATE 命令可以更改數據庫表中各個(gè)項目的值。下面的腳本使用 UPDATE 命令將 Customers 表中所有在 LastName 字段中包含姓氏 Smith 的 FirstName 字段更改為 Jeff。

<%
Set cnn = Server.CreateObject("ADODB.Connection")
cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Data\Employees.mdb"
cnn.Execute "UPDATE Customers SET FirstName = 'Jeff' WHERE LastName = 'Smith' ",,adCmdText + adExecuteNoRecords
%>
要刪除數據庫表中指定的記錄,可使用 SQL 的 DELETE 命令。下面的腳本將刪除 Customers 表中所有姓氏為 Smith 的行:

<%
Set cnn = Server.CreateObject("ADODB.Connection")
cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Data\Employees.mdb"
cnn.Execute "DELETE FROM Customers WHERE LastName = 'Smith'",,adCmdText + adExecuteNoRecords
%>
注意 在使用 SQL DELETE 命令時(shí)務(wù)必小心謹慎。不帶 WHERE 子句的 DELETE 命令將刪除表中的所有行。確保包括 SQL WHERE 子句,以便明確指定要刪除的行。

使用 Recordset 對象處理結果
為了檢索數據、檢查結果和更改數據庫,ADO 提供了 Recordset 對象。正如名字所示,“Recordset”對象具有用來(lái)檢索和顯示數據庫行(或叫“記錄”)的功能,這取決于您的查詢(xún)約束條件。“Recordset”對象保留由查詢(xún)返回的每一條記錄的位置,這樣就能使您查看所有的結果,每次一條。

檢索記錄集
成功的 Web 數據應用程序既使用“Connection”對象來(lái)建立鏈接,又使用“Recordset”對象來(lái)處理返回的數據。通過(guò)綜合使用這兩種對象的一些特殊功能,開(kāi)發(fā)出的數據庫應用程序幾乎可以執行所有的數據處理任務(wù)。例如,下面的服務(wù)器端腳本使用“Recordset”對象執行 SQL 的 SELECT 命令。此 SELECT 命令用來(lái)檢索基于查詢(xún)約束條件的信息集。此查詢(xún)也包含 SQL WHERE 子句,用來(lái)將查詢(xún)限制到一個(gè)指定的標準。在本例中,WHERE 子句將查詢(xún)限制在 Customers 數據庫表中姓氏字段包含 Smith 的所有記錄。

<%
'建立數據源連接
strConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Data\Employees.mdb"
Set cnn = Server.CreateObject("ADODB.Connection")
cnn.Open strConnectionString

'例示 Recordset 對象
Set rstCustomers = Server.CreateObject("ADODB.Recordset")

'使用 Open 方法打開(kāi)記錄集
'并使用通過(guò) Connection 對象建立的連接。
strSQL = "SELECT FirstName, LastName FROM Customers WHERE LastName = 'Smith' "
rstCustomers.Open strSQL, cnn

'遍歷記錄集和顯示結果
'并使用 MoveNext 方法遞增記錄位置。
Set objFirstName = rstCustomers("FirstName")
Set objLastName = rstCustomers("LastName")
Do Until rstCustomers.EOF
Response.Write objFirstName & " " & objLastName & "<BR>"
rstCustomers.MoveNext
Loop

%>
注意,在上例中,“Connection”對象建立數據庫連接,而“Recordset”對象使用同一連接從數據庫中檢索結果。當需要精確配置建立數據庫鏈接的方式時(shí),該方法非常有用。例如,如果要指定在連接中止之前的時(shí)間延遲,可能需要使用“Connection”對象設置該屬性。但是,如果只想使用 ADO 的默認連接屬性建立連接,您可以使用“Recordset”對象的“Open”方法來(lái)建立鏈接:

<%
strConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Data\Employees.mdb"
strSQL = "SELECT FirstName, LastName FROM Customers WHERE LastName = 'Smith' "
Set rstCustomers = Server.CreateObject("ADODB.Recordset")

'使用 Open 方法打開(kāi)連接
'并使用通過(guò) Connection 對象建立的連接。
rstCustomers.Open strSQL, strConnectionString

'遍歷記錄集,顯示結果,
'并使用 MoveNext 方法遞增記錄位置。
Set objFirstName = rstCustomers("FirstName")
Set objLastName = rstCustomers("LastName")
Do Until rstCustomers.EOF
Response.Write objFirstName & " " & objLastName & "<BR>"
rstCustomers.MoveNext
Loop
%>
當使用“Recordset”對象的“Open”方法來(lái)建立連接時(shí),實(shí)際上正在隱含地使用“Connection”對象保護鏈接的安全。詳細信息,請參閱 Microsoft ActiveX 數據對象 (ADO) 文檔,可在 Microsoft Universal Data Access Web 站點(diǎn) http://www.microsoft.com/data/ 上找到該文檔。

注意 要明顯提高 ASP 數據庫應用程序的性能,請考慮在“應用程序”狀態(tài)中高速緩存記錄集。詳細信息,請參閱高速緩存數據。

統計記錄集中返回的記錄數有時(shí)候很有用。“Recordset”對象的“Open”方法使您能夠指定可選的光標參數,以確定潛在提供者檢索和瀏覽記錄集的方法。通過(guò)給用來(lái)執行查詢(xún)的語(yǔ)句添加 adOpenKeyset 光標參數,可以使客戶(hù)端應用程序完全地瀏覽記錄集。因此,應用程序可使用 RecordCount 屬性精確地統計記錄集中的記錄數。請參看下面的示例:

<%
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open "SELECT * FROM NewOrders", "Provider=Microsoft.Jet.OLEDB.3.51;Data Source='C:\CustomerOrders\Orders.mdb'", adOpenKeyset, adLockOptimistic, adCmdText

'使用 Recordset 對象的 RecordCount 屬性進(jìn)行統計。
If rs.RecordCount >= 5 then
 Response.Write "我們已經(jīng)收到下面" & rs.RecordCount & "個(gè)新訂單<BR>"

 Do Until rs.EOF
  Response.Write rs("CustomerFirstName") & " " & rs("CustomerLastName") & "<BR>"
Response.Write rs("AccountNumber") & "<BR>"
Response.Write rs("Quantity") & "<BR>"
Response.Write rs("DeliveryDate") & "<BR><BR>"
    rs.MoveNext
 Loop

Else
 Response.Write "訂單數少于 " & rs.RecordCount & "。"
End If

rs.Close
%>
使用 Command 對象改善查詢(xún)
使用 ADO 的 Command 對象執行查詢(xún)的方式與使用“Connection”和“Recordset”對象執行查詢(xún)的方式一樣,但是使用“Command”對象可以準備(或編譯)對數據庫源的查詢(xún),然后使用各種不同的值重復發(fā)送此查詢(xún)。用這種方法編譯查詢(xún)的好處在于,當您需要重新發(fā)布修改過(guò)的已有查詢(xún)時(shí),可以大大地減少發(fā)布時(shí)間。另外,還可以留下部分 SQL 查詢(xún)不進(jìn)行定義,用到了在執行之前改變查詢(xún)部分的選項。

“Command”對象的“Parameters”集合可以使您避免每次重新發(fā)布查詢(xún)時(shí)都要重建查詢(xún)的麻煩。例如,如果您需要定期更新基于 Web 的庫存系統的供應和費用信息,就可以按照下面的方式預定義查詢(xún):

<%
'使用 Connection 對象打開(kāi)連接注意,Command 對象
'并不具有用來(lái)建立連接的 Open 方法。
strConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Data\Inventory.mdb"
Set cnn = Server.CreateObject("ADODB.Connection")
cnn.Open strConnectionString

'例示 Command 對象;使用 ActiveConnection 屬性將
'連接附加到 Command 對象上。
Set cmn= Server.CreateObject("ADODB.Command")
Set cmn.ActiveConnection = cnn

'定義 SQL 查詢(xún)。
cmn.CommandText = "INSERT INTO Inventory (Material, Quantity) VALUES (?, ?)"

'在 Command 對象首次執行之前保存在 CommandText 屬性
'中指定的查詢(xún)的預備(或預編譯)版本。
cmn.Prepared = True

'定義查詢(xún)參數配置信息。
cmn.Parameters.Append cmn.CreateParameter("material_type",adVarChar, ,255 )
cmn.Parameters.Append cmn.CreateParameter("quantity",adVarChar, ,255 )

'定義并執行第一個(gè)插入操作。
cmn("material_type") = "日光燈泡"
cmn("quantity") = "40"
cmn.Execute ,,adCmdText + adExecuteNoRecords

'定義并執行第二個(gè)插入操作。
cmn("material_type") = "保險絲"
cmn("quantity") = "600"
cmn.Execute ,,adCmdText + adExecuteNoRecords
  .
  .
  .
 %>
要點(diǎn) ADO 參數(如 adCmdText)是一些簡(jiǎn)單變量,這意味著(zhù)在使用數據訪(fǎng)問(wèn)腳本中的 ADO 參數之前需要先定義參數值。由于 ADO 使用了大量的參數,因此通過(guò)“組件類(lèi)型庫”來(lái)定義參數更容易些,組件類(lèi)型庫是包含所有 ADO 參數和常量定義的文件。有關(guān)實(shí)施 ADO 類(lèi)型庫的詳細信息,請參閱使用變量和常量主題中的使用常量部分。

在上例中,您將注意到腳本使用不同的值重復構建和重新發(fā)布 SQL 查詢(xún),但并沒(méi)有重新定義并重新發(fā)送查詢(xún)到數據庫源中。使用“Command”命令編譯查詢(xún)也有如下優(yōu)點(diǎn):可避免當將字符串和變量連接成 SQL 查詢(xún)時(shí)引起問(wèn)題。特別地,使用“Command”對象的“Parameter”集合,您可以避免那些與定義特定類(lèi)型字符串、日期和時(shí)間變量相關(guān)的問(wèn)題。例如,包含單引號 (') 的 SQL 查詢(xún)值可能導致查詢(xún)失?。?

 strSQL = "INSERT INTO Customers (FirstName, LastName) VALUES ('Robert','O'Hara')"
注意,姓氏“O'Hara”包含一個(gè)單引號,這與用來(lái)表示 SQL VALUES 關(guān)鍵字中數據的單引號沖突。通過(guò)將查詢(xún)值約束為“Command”對象參數可以避免此類(lèi)問(wèn)題。

合并 HTML 表單和數據庫訪(fǎng)問(wèn)
包含 HTML 表單的 Web 頁(yè)可允許用戶(hù)遠程查詢(xún)數據庫并檢索指定的信息。使用 ADO 您可以創(chuàng )建出非常簡(jiǎn)單的用來(lái)收集用戶(hù)表單信息的腳本、創(chuàng )建自定義的數據庫查詢(xún)并將信息返回給用戶(hù)。使用 ASP 的“Request”對象,您可以檢索輸入到 HTML 表單中的信息并將這些信息嵌入到 SQL 語(yǔ)句中。例如,下面的腳本塊會(huì )將由 HTML 表單提供的信息插入到表中。腳本使用“Request”對象的“Form”集合來(lái)收集用戶(hù)信息。

<%
'使用 Connection 對象打開(kāi)連接Command 對象
'并不具有用來(lái)建立連接的 Open 方法。
strConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\CompanyCatalog\Seeds.mdb"
Set cnn = Server.CreateObject("ADODB.Connection")
cnn.Open strConnectionString

'例示 Command 對象
'并使用 ActiveConnection 屬性附加對象
'連接附加到 Command 對象上。
Set cmn= Server.CreateObject("ADODB.Command")
Set cmn.ActiveConnection = cnn

'定義 SQL 查詢(xún)。
cmn.CommandText = "INSERT INTO MySeedsTable (Type) VALUES (?)"

'定義查詢(xún)參數配置信息。
cmn.Parameters.Append cmn.CreateParameter("type",adVarChar, ,255)

'指派輸入值并執行更新。
cmn("type") = Request.Form("SeedType")
cmn.Execute ,,adCmdText + adExecuteNoRecords
%>
有關(guān)表單和使用 ASP“Request”對象的詳細信息,請參閱處理用戶(hù)輸入。

管理數據庫連接
設計完善的 Web 數據庫應用程序(如服務(wù)成千上萬(wàn)個(gè)客戶(hù)的聯(lián)機訂購輸入應用程序)的一個(gè)主要挑戰就是如何正確管理數據庫連接。打開(kāi)并維護數據庫連接,尤其是當沒(méi)有信息傳輸時(shí)也要打開(kāi)和維護,會(huì )嚴重消耗數據庫服務(wù)器的資源并導致連接性問(wèn)題。設計良好的 Web 數據庫應用程序可重復利用數據庫連接并補償因網(wǎng)絡(luò )通信量導致的延遲。

超時(shí)連接
數據庫服務(wù)器當活動(dòng)突然激增時(shí)會(huì )產(chǎn)生積壓,同時(shí)大大增加建立數據庫連接所需的時(shí)間。因此,過(guò)多的連接延遲會(huì )降低數據庫應用程序的性能。

使用“Connection”對象的“ConnectionTimeout”可以限制應用程序在放棄連接嘗試并發(fā)布錯誤消息之前等待的時(shí)間數。例如,下面的腳本將“ConnectionTimeout”屬性設置為在取消連接嘗試之前等待 20 秒。

Set cnn = Server.CreateObject("ADODB.Connection")
cnn.ConnectionTimeout = 20
cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Data\Inventory.mdb"

“ConnectionTimeout”屬性默認為 30 秒。

注意 在將“ConnectionTimeout”屬性并入數據庫應用程序之前,請確保您的連接提供者和數據源支持該屬性。

共用連接
連接池可使您的 Web 應用程序使用“池”中的連接,“池”指的是包含許多不需要重新建立的自由連接的容器。創(chuàng )建連接并放入連接池中后,應用程序可以重復使用該連接而不必執行連接進(jìn)程。這可明顯地提高性能,特別是在應用程序通過(guò)網(wǎng)絡(luò )連接或需要重復連接和斷開(kāi)的情況下更是如此。另外,共用的連接可被多個(gè)應用程序重復使用。

OLE DB 會(huì )話(huà)池
OLE DB 具有一個(gè)共用特性,稱(chēng)為“會(huì )話(huà)池”,用來(lái)提高大型 Web 數據庫應用程序的活動(dòng)性能。會(huì )話(huà)池保護連接安全和一些其他屬性。共用的連接只在連接兩端提出匹配的請求時(shí)才可重新使用。默認情況下,Microsoft SQL server 和 Oracle 的 OLE DB 提供者支持會(huì )話(huà)池。這意味著(zhù)并不需要配置應用程序、服務(wù)器或數據庫即可使用會(huì )話(huà)池。然而,如果提供者默認情況下不支持會(huì )話(huà)池,則需要創(chuàng )建注冊表設置以啟用會(huì )話(huà)池。關(guān)于會(huì )話(huà)池的詳細信息,請參閱 OLE DB 2.0 Software Development Kit (SDK) 文檔。

ODBC 連接池
如果希望 ODBC 驅動(dòng)程序分享連接池,您必須配置特定的數據庫驅動(dòng)程序,然后在 Windows 注冊表中設置驅動(dòng)程序的“CPTimeout”屬性。“CPTimeout”屬性確定連接在連接池中保留的時(shí)間長(cháng)度。如果連接在池中保留的時(shí)間超過(guò)“CPTimeout”設置的持續時(shí)間,連接將關(guān)閉并從池中刪除。“CPTimeout”的默認值是 60 秒。

通過(guò)創(chuàng )建帶有下面設置的注冊表鍵值,您可以有選擇地設置“CPTimeout”屬性以啟用特定 ODBC 數據庫驅動(dòng)程序的連接池:

\HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\driver-name\CPTimeout = 超時(shí)數
(REG_SZ, 以秒為單位)

例如,下面的鍵值將 SQL Server 驅動(dòng)程序的連接池超時(shí)設置為 180 秒(3 分鐘)。

\HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\SQL Server\CPTimeout = 180
注意 默認情況下,Web 服務(wù)器激活 SQL Server 的連接池并將“CPTimeout”設置為 60 秒。

使用跨多頁(yè)的連接
雖然可以通過(guò)將連接儲存在 ASP 的“Application”對象中來(lái)重復使用跨多頁(yè)的連接,但這樣做可能導致不必要地保持打開(kāi)的連接,并且可能損害使用連接池的優(yōu)勢。如果有許多用戶(hù)需要連接到同一 ASP 應用程序,一種更好的方法是重復使用跨多個(gè) Web 頁(yè)的數據庫連接字符串,只需將字符串放置到 ASP 的“Application”對象中即可。例如,您可以在 Global.asa 文件的 Application_OnStart 事件過(guò)程中指定連接字符串,如下面的腳本所示:

Application("ConnectionString") = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Data\Inventory.mdb"

然后在每一個(gè)訪(fǎng)問(wèn)數據庫的 ASP 文件中,寫(xiě)入

<OBJECT RUNAT=SERVER ID=cnn PROGID="ADODB.Connection"></OBJECT>
以創(chuàng )建該頁(yè)的連接對象實(shí)例,并使用腳本

cnn.Open Application("ConnectionString")
打開(kāi)該連接。要關(guān)閉連接,在該頁(yè)的末尾可以使用

cnn.Close
在個(gè)別用戶(hù)需要重復使用跨多個(gè) Web 頁(yè)連接的情況下,您將發(fā)現使用“Session”對象儲存連接字符串比使用“Application”對象更具優(yōu)勢。

關(guān)閉連接
要充分利用連接池,請盡可能顯式關(guān)閉數據庫連接。默認情況下,連接在腳本執行完后終止。然而,通過(guò)顯式關(guān)閉腳本已不再需要的連接,您可以減少對數據庫服務(wù)器的要求,并使得其他用戶(hù)可以使用該連接。

可以使用“Connection”對象的“Close”方法顯式終止“Connection”對象和數據庫之間的連接。下面的腳本將打開(kāi)和關(guān)閉連接:

<%
strConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Data\Inventory.mdb"
Set cnn = Server.CreateObject("ADODB.Connection")
cnn.Open strConnectionString
cnn.Close
%>

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
ADO.NET入門(mén)教程(三) 連接字符串,你小覷了嗎?
SQLServer 2005數據庫連接字符串
Excel VBA ADO SQL入門(mén)教程021:ADO常用連接字符串
[轉]ASP:ADO數據庫訪(fǎng)問(wèn)
ASP動(dòng)態(tài)網(wǎng)頁(yè)制作實(shí)例集錦
.NET和SQL Server中“空值”
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久