在网络编程过程中,ADO(Activex Data Object)编程往往是不可少的工作,特别是开发电子商务网站。既然讲到ADO数据对象,那么就顺便简单地介绍一下ADO数据对象及其功能。ADO数据对象共有七种独立的对象,他们分别是连接对象(Connection)、记录集对象(RecordSet)、域对象(Field)、命令对象(Command)、参数对象(Parameter)、属性对象(Property)和错误对象(Error)。功能请参见附录1。
ADO数据对象用来连接数据库的方式有两种,分别是ODBC和OLE DB方式,下面就分别介绍用这两种方式连接数据库的例子。
第一种:ODBC DSN-Less Connections
ODBC Driver for Access
ODBC Driver for dBASE
ODBC Driver for Excel
ODBC Driver for MySQL
ODBC Driver for Oracle
ODBC Driver for Paradox
ODBC Driver for SQL Server
ODBC Driver for Sybase
ODBC Driver for Sybase SQL Anywhere
ODBC Driver for Text
ODBC Driver for Teradata
ODBC Driver for Visual FoxPro
第二种:OLE DB Data Provider Connections
OLE DB Provider for Active Directory Service
OLE DB Provider for DB2
OLD DB Provider for Internet Publishing
OLE DB Provider for Index Server
OLE DB Provider for Microsoft Jet
OLE DB Provider for ODBC Databases
OLE DB Provider for Oracle (From Microsoft)
OLE DB Provider for Oracle (From Oracle)
OLE DB Provider for Simple Provider
OLE DB Provider for SQL Server
一、下面我就先讲利用ODBC DSN来访问数据库,要完成这项工作,必须先通过“控制面板”—“管理工具”—“ODBC数据源”来建立一个数据源名,例如叫做TestData_Resoure。
1) 通过系统数据源(System DSN)的连接
<%
Dim?oConn,strConn
Set?oConn=Server.CreateObject(“ADODB.Connection”)
StrConn="DSN=TestData_Resoure;"?&?_?
?"Uid=AdminAccount;"?&?_?
?"Pwd=PassWord;
oConn.Open?strConn
%>
2) 通过文件数据源(File DSN)的连接
<%
Dim?oConn,strConn
Set?oConn=Server.CreateObject(“ADODB.Connection”)
StrConn="FILEDSN=c:/somepath/mydb.dsn;"?&?_?
?"Uid=AdminAccount;"?&?_
?"Pwd=PassWord;"
oConn.Open?strConn
%>
3) 通过连接池(DSN-Less)的连接(ODBC Driver for AS/400)
<%
Dim?oConn,strConn
Set?oConn=Server.CreateObject(“ADODB.Connection”)
strConn=?"Driver={Client?Access?ODBC?Driver?(32-bit)};"?&?_
?"System=myAS400;"?&?_
?"Uid=myUsername;"?&?_
?"Pwd=myPassword;"
oConn.Open?strConn
%>
二、利用数据库驱动程序直接访问数据库的连接字符串。
1) ODBC Driver for Access
● 标准的也是比较常用的连接方法
<%
Dim?oConn,strConn
Set?oConn=Server.CreateObject(“ADODB.Connection”)
StrConn=?"Driver={Microsoft?Access?Driver?(*.mdb)};"?&?_?
?"Dbq=”&Server.MapPath(“Testdb.mdb”);?&?_
?"Uid=AdminAccount;"?&?_
?"Pwd=Password;"
oConn.Open?strConn
%>
● 假如是一个工作组的系统数据库,那么连接字符串如下
<%
Dim?oConn,strConn
Set?oConn=Server.CreateObject(“ADODB.Connection”)
StrConn=?"Driver={Microsoft?Access?Driver?(*.mdb)};"?&?_?
?"Dbq=c:/datapath/Testdb.mdb;"?&?_
?"SystemDB=c:/datapath/Testdb.mdw;",?_
?"admin",?""
oConn.Open?strConn
%>
● 假如数据库(MDB)是网络上共享的,那么连接字符串如下
<%
Dim?oConn,strConn
Set?oConn=Server.CreateObject(“ADODB.Connection”)
StrConn="Driver={Microsoft?Access?Driver?(*.mdb)};"?&?_
?"Dbq=//myServer/myShare/myPath/Testdb.mdb;"
oConn.Open?strConn
%>
2) ODBC Driver for dBASE
<%
Dim?oConn,strConn
Set?oConn=Server.CreateObject(“ADODB.Connection”)
StrConn="Driver={Microsoft?dBASE?Driver?(*.dbf)};"?&?_
"DriverID=277;"?&?_
"Dbq=c:/FilePath;"
oConn.Open?strConn
%>
说明:这里要注意的一点就是,在SQL查询语句中要特别指定数据库文件名,例如:
oRs.Open "Select * From Testdb.dbf", oConn, , ,adCmdText
3) ODBC Driver for Excel
<%
Dim?oConn,strConn
Set?oConn=Server.CreateObject(“ADODB.Connection”)
StrConn="Driver={Microsoft?Excel?Driver?(*.xls)};"?&?_
?"DriverId=790;"?&?_
?"Dbq=c:/filepath/myExecl.xls;"?
oConn.Open?strConn
%>
4) ODBC Driver for MySQL (通过 MyODBC驱动程序)
● 连接到本地数据库(local database)
<%
Dim?oConn,strConn
Set?oConn=Server.CreateObject(“ADODB.Connection”)
StrConn="Driver={mySQL};"?&?_?
"Server=ServerName;"?&?_
"Option=16834;"?&?_
?"Database=mydb;"
oConn.Open?strConn
%>
● 连接远程数据库(remote databas)
<%
Dim?oConn,strConn
Set?oConn=Server.CreateObject(“ADODB.Connection”)
StrConn="Driver={mySQL};Server=db1.database.com;Port=3306;"?&?_
"Option=131072;Stmt=;Database=mydb;Uid=myUsername;Pwd=myPassword;"
oConn.Open?strConn
%>
5) ODBC Driver for Oracle
<%
Dim?oConn,strConn
Set?oConn=Server.CreateObject(“ADODB.Connection”)
StrConn="Driver={Microsoft?ODBC?for?Oracle};"?&?_
?"Server=OracleServer.world;"?&?_
?"Uid=myUsername;"?&?_
?"Pwd=myPassword;"
oConn.Open?strConn
%>
6) ODBC Driver for Paradox
<%
Dim?oConn,strConn
Set?oConn=Server.CreateObject(“ADODB.Connection”)
StrConn="Driver={Microsoft?Paradox?Driver?(*.db)};"?&?_
?"DriverID=538;"?&?_
?"Fil=Paradox?5.X;"?&?_
?"DefaultDir=c:/dbpath/;"?&?_
?"Dbq=c:/dbpath/;"?&?_
?"CollatingSequence=ASCII;"
oConn.Open?strConn
%>
7) ODBC Driver for SQL Server
<%
Dim?oConn,strConn
Set?oConn=Server.CreateObject(“ADODB.Connection”)
StrConn="Driver={SQL?Server};"?&?_?
? ???????????"Server=MyServerName;"?&?_
??????"Database=myDatabaseName;"?&?_
??????"Uid=myUsername;"?&?_
? ?????"Pwd=myPassword;"
oConn.Open?strConn
%>
8) ODBC Driver for Sybase (通过Sybase System 11 ODBC Driver驱动程序)
<%
Dim?oConn,strConn
Set?oConn=Server.CreateObject(“ADODB.Connection”)
StrConn=?"Driver={SYBASE?SYSTEM?11};"?&?_
?"Srvr=myServerName;"?&?_
???"Uid=myUsername;"?&?_
? ??"Pwd=myPassword;"
oConn.Open?strConn
%>
9) ODBC Driver for Sybase SQL Anywhere
<%
Dim?oConn,strConn
Set?oConn=Server.CreateObject(“ADODB.Connection”)
StrConn=?"ODBC;?Driver=Sybase?SQL?Anywhere?5.0;"?&?_
?"DefaultDir=c:/dbpath/;"?&?_
?"Dbf=c:/sqlany50/mydb.db;"?&?_
???"Uid=myUsername;"?&?_
? ??"Pwd=myPassword;"
?"Dsn="""";"
oConn.Open?strConn
%>
10) ODBC Driver for Teradata
<%
Dim?oConn,strConn
Set?oConn=Server.CreateObject(“ADODB.Connection”)
StrConn=?"Provider=Teradata;"?&?_
?"DBCName=MyDbcName;"?&?_?
?"Database=MyDatabaseName;"?&?_?
?"Uid=myUsername;"?&?_
?"Pwd=myPassword;"
oConn.Open?strConn
%>
11) ODBC Driver for Text
<%
Dim?oConn,strConn
Set?oConn=Server.CreateObject(“ADODB.Connection”)
StrConn=?"Driver={Microsoft?Text?Driver?(*.txt;?*.csv)};"?&?_
?"Dbq=c:/somepath/;"?&?_
?"Extensions=asc,csv,tab,txt;"?&?_
?"Persist?Security?Info=False"
oConn.Open?strConn
%>
12) ODBC Driver for Visual FoxPro
●使用数据库容器(database container)连接方式
<%
Dim?oConn,strConn
Set?oConn=Server.CreateObject(“ADODB.Connection”)
StrConn=?"Driver={Microsoft?Visual?FoxPro?Driver};"?&?_
?"SourceType=DBC;"?&?_
?"SourceDB=c:/somepath/mySourceDb.dbc;"?&?_
?"Exclusive=No;"
oConn.Open?strConn
%>
● 不使用数据库容器(database container)连接方式(即Free Table Directory方式)
<%
????<%
????Dim?oConn,strConn
????Set?oConn=Server.CreateObject(“ADODB.Connection”)
????StrConn=?"Driver={Microsoft?Visual?FoxPro?Driver};"?&?_
?"SourceType=DBF;"?&?_
?"SourceDB=c:/somepath/mySourceDbFolder;"?&?_
?"Exclusive=No;"
????????????????????????????oConn.Open?strConn?
????????????????????????????%>
二、接下来讲使用OLE DB来连接数据库的例子。
1) OLE DB Provider for Active Directory Service
<%
Dim?oConn,strConn
Set?oConn=Server.CreateObject(“ADODB.Connection”)
StrConn=???????????"Provider=ADSDSOObject;"?&?_
?"User?Id=myUsername;"?&?_
?"Password=myPassword;"
oConn.Open?strConn
%>
2) OLE DB Provider for DB2
<%
Dim?oConn,strConn
Set?oConn=Server.CreateObject(“ADODB.Connection”)
StrConn=?????????????"Provider=DB2OLEDB;"?&?
?"Network?Transport?Library=TCPIP;"?&?
?"Network?Address=MyServer;"?&?_
?"Package?Collection=MyPackage;"?&?
?"Host?CCSID=1142"
?"Initial?Catalog=MyDB;"?&?
?"User?ID=MyUsername;"?&?_
"Password=MyPassword;"
???????oConn.Open?strConn
%>
3) OLE DB Provider for Index Server
<%
Dim?oConn,strConn
Set?oConn=Server.CreateObject(“ADODB.Connection”)
StrConn=???????????"Provider=msidxs;"?&?_
?"Data?source=MyCatalog;"
oConn.Open?strConn
%>
4) OLE DB Provider for Internet Publishing
<%
Dim?oConn,strConn
Set?oConn=Server.CreateObject(“ADODB.Connection”)
?StrConn=??"Provider=MSDAIPP.DSO;"?&?_
?"Data?Source=http://mywebsite/myDir;"?&?_?
?"User?Id=myUsername;"?&?_
?"Password=myPassword;"
oConn.Open?strConn
%>
5) OLE DB Provider for Microsoft Jet
● 标准的也是常用的访问方式。
<%
Dim?oConn,strConn
Set?oConn=Server.CreateObject(“ADODB.Connection”)
StrConn=???????????"Provider=Microsoft.Jet.OLEDB.4.0;"?&?_
?"Data?Source=c:/somepath/myDb.mdb;"?&?_?
?"User?Id=admin;"?&?_
?"Password=;"
oConn.Open?strConn
%>
● 假如是一个工作组的系统数据库,那么连接字符串如下。
<%
Dim?oConn,strConn
Set?oConn=Server.CreateObject(“ADODB.Connection”)
StrConn=???????????"Provider=Microsoft.Jet.OLEDB.4.0;"?&?_
?"Data?Source=c:/somepath/mydb.mdb;"?&?_?
?"Jet?OLEDB:System?Database=MySystem.mdw;",?_
?"admin",?""
oConn.Open?strConn
%>
注意:在使用4.0 OLE DB Provider 提供者的驱动程序时,要记得把MDB和MDW转换成the 4.0 database格式。
● 如果MDB是设置密码的话,那么使用如下连接字符串。
oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=c:/somepath/mydb.mdb;" & _
"Jet OLEDB:Database Password=MyDbPassword;", _
"admin", ""
● 如果MDB是位于网络中并且是共享的话,那么使用如下连接字符串。
oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=//myServer/myShare/myPath/myDb.mdb;
● 如果要想使用专有的方式来访问数据库,那么使用如下连接字符串。
oConn.Mode = adModeShareExclusive
oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=c:/somepath/myDb.mdb;" & _
"User Id=admin;Password=;"
6)使用OLE DB Provider for Microsoft Jet来访问Excel电子数据表。
<%
Dim?oConn,strConn
Set?oConn=Server.CreateObject(“ADODB.Connection”)
StrConn=???????????"Provider=Microsoft.Jet.OLEDB.4.0;"?&?_
?"Data?Source=c:/somepath/myExcelSpreadsheet.xls;"?&?_
?"Extended?Properties=""Excel?8.0;HDR=Yes;"";"
oConn.Open?strConn
%>
说明:这里的HDR=Yes的意思是,提供者访问Excel电子数据表时没有把第一排的数据加入到数据集中;而当HDR=No时的意思是提供者访问Excel电子数据表时动作恰好跟上面所述相反。
7)OLE DB Provider for ODBC Databases
● 访问MS Access数据库
<%
Dim?oConn,strConn
Set?oConn=Server.CreateObject(“ADODB.Connection”)
StrConn=???????????"Provider=MSDASQL;"?&?_?
?"Driver={Microsoft?Access?Driver?(*.mdb)};"?&?_
?"Dbq=c:/somepath/mydb.mdb;"?&?_
?"Uid=myUsername;"?&?_
?"Pwd=myPassword;"
oConn.Open?strConn
%>
● 访问MS SQL Server 数据库
<%
Dim?oConn,strConn
Set?oConn=Server.CreateObject(“ADODB.Connection”)
StrConn=???????????"Provider=MSDASQL;"?&?_?
?"Driver={SQL?Server};"?&?_
?"Server=myServerName;"?&?_
?"Database=myDatabaseName;"?&?_
?"Uid=myUsername;"?&?_
?"Pwd=myPassword;"
oConn.Open?strConn
%>
8) OLE DB Provider for Oracle (from Microsoft)
<%
Dim?oConn,strConn
Set?oConn=Server.CreateObject(“ADODB.Connection”)
StrConn=???????????"Provider=msdaora;"?&?_
?"Data?Source=MyOracleDB;"?&?_?
?"User?Id=myUsername;"?&?_
?"Password=myPassword;"
oConn.Open?strConn
%>
9) OLE DB Provider for Oracle (from Oracle)
<%
Dim?oConn,strConn
Set?oConn=Server.CreateObject(“ADODB.Connection”)
StrConn=???????????"Provider=OraOLEDB.Oracle;"?&?_
?"Data?Source=MyOracleDB;"?&?_?
?"User?Id=myUsername;"?&?_
?"Password=myPassword;"
oConn.Open?strConn
%>
10) OLE DB Provider for SQL Server
● 标准连接方式
<%
Dim?oConn,strConn
Set?oConn=Server.CreateObject(“ADODB.Connection”)
StrConn=???????????"Provider=sqloledb;"?&?_?
?"Data?Source=myServerName;"?&?_
?"Initial?Catalog=myDatabaseName;"?&?_
?"User?Id=myUsername;"?&?_
?"Password=myPassword;"
oConn.Open?strConn
%>
● 通过机器的IP地址访问
<%
Dim?oConn,strConn
Set?oConn=Server.CreateObject(“ADODB.Connection”)
StrConn=???????????"Provider=sqloledb;"?&?_
?"Data?Source=xxx.xxx.xxx.xxx,1433;"?&?_
?"Network?Library=DBMSSOCN;"?&?_
?"Initial?Catalog=myDatabaseName;"?&?_
?"User?ID=myUsername;"?&?_
?"Password=myPassword;"
oConn.Open?strConn
%>
说明:IP:xxx.xxx.xxx.xxx
SQLServer默认端口:1433