ADO(ActiveX Data Objects)是一种面向对象的数据访问技术,它提供了一系列的接口和方法,可以让开发人员在应用程序中更加容易地对关系型数据库进行访问和操作。
本文介绍如何使用ADO链接Oracle数据库,下面举个例子:
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是链接数据库的用户名,Password是连接密码。如果没有其他的关键字设定,就会使用默认值链接数据库。
另外,在链接Oracle数据库的时候,需要一些准备工作,比如需要在Windows注册表中注册一些项来连接Oracle数据库,例如:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\MSDTC\MTxOCI]
"OracleXaLib"="oraclient11.dll"
"OracleSqlLib"="orasql11.dll"
以上注册表信息表明了系统使用Oracle数据库时需要的OCI文件信息。
成功连接数据库后,接下来可以进行一些操作。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
以上代码联结了tableA和tableB两个表,可以在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"
环视的循环向test_table表中插入多行记录。
III、超时设置的例子:
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
以上代码设置CommandTimeout为10秒,如果在10秒内没有连接成功就会报出错误信息。
综上所述,ADO链接Oracle数据库的方法是比较简单的,只要明确链接需要的 PROVIDER、Data Source、用户名、密码等参数信息,在代码中加入相应的设置即可。常见的查询、批量操作和超时设置等,也都可以根据需要在代码中实现。