ADO(ActiveX Data Objects)是一種面向?qū)ο蟮臄?shù)據(jù)訪問技術(shù),它提供了一系列的接口和方法,可以讓開發(fā)人員在應(yīng)用程序中更加容易地對(duì)關(guān)系型數(shù)據(jù)庫(kù)進(jìn)行訪問和操作。
本文介紹如何使用ADO鏈接Oracle數(shù)據(jù)庫(kù),下面舉個(gè)例子:
Dim conn As ADODB.Connection Set conn = New ADODB.Connection conn.ConnectionString = "Provider=OraOLEDB.Oracle;Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=xxxx)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=xxx)));User Id=xxx;Password=xxx;" conn.Open
上面的代碼中,我們使用OraOLEDB.Oracle提供的Oracle鏈接PROVIDER,其中Data Source是DB連接信息,User Id是鏈接數(shù)據(jù)庫(kù)的用戶名,Password是連接密碼。如果沒有其他的關(guān)鍵字設(shè)定,就會(huì)使用默認(rèn)值鏈接數(shù)據(jù)庫(kù)。
另外,在鏈接Oracle數(shù)據(jù)庫(kù)的時(shí)候,需要一些準(zhǔn)備工作,比如需要在Windows注冊(cè)表中注冊(cè)一些項(xiàng)來(lái)連接Oracle數(shù)據(jù)庫(kù),例如:
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\MSDTC\MTxOCI] "OracleXaLib"="oraclient11.dll" "OracleSqlLib"="orasql11.dll"
以上注冊(cè)表信息表明了系統(tǒng)使用Oracle數(shù)據(jù)庫(kù)時(shí)需要的OCI文件信息。
成功連接數(shù)據(jù)庫(kù)后,接下來(lái)可以進(jìn)行一些操作。I、子查詢的例子:
Dim rs As ADODB.Recordset Set rs = Server.CreateObject("ADODB.Recordset") rs.Open "SELECT * FROM tableA WHERE id IN (SELECT id FROM tableB)", conn Do While Not rs.EOF Response.Write rs.Fields("id") & "
" rs.MoveNext Loop
以上代碼聯(lián)結(jié)了tableA和tableB兩個(gè)表,可以在tableA表中找到與tableB表中相同id值的記錄。
II、批量操作的例子:
Dim sql As String Dim oCount As Integer For i = 1 To 100 sql = "INSERT INTO test_table(name, age) VALUES ('testName" & i & "', 20)" conn.Execute sql oCount = oCount + 1 Next Response.Write oCount & " rows were affected"
環(huán)視的循環(huán)向test_table表中插入多行記錄。
III、超時(shí)設(shè)置的例子:
Dim conn As ADODB.Connection Set conn = New ADODB.Connection On Error Resume Next conn.CommandTimeout = 10 conn.Open "Provider=OraOLEDB.Oracle;Data Source=xxx;User Id=xxx;Password=xxx;" If Err.Number >0 Then Response.Write "database connection failure, please check your server" Err.Clear Set conn = Nothing Response.End End If On Error GoTo 0
以上代碼設(shè)置CommandTimeout為10秒,如果在10秒內(nèi)沒有連接成功就會(huì)報(bào)出錯(cuò)誤信息。
綜上所述,ADO鏈接Oracle數(shù)據(jù)庫(kù)的方法是比較簡(jiǎn)單的,只要明確鏈接需要的 PROVIDER、Data Source、用戶名、密碼等參數(shù)信息,在代碼中加入相應(yīng)的設(shè)置即可。常見的查詢、批量操作和超時(shí)設(shè)置等,也都可以根據(jù)需要在代碼中實(shí)現(xiàn)。