在网络编程过程中,ADO(Activex Data Object)编程往往是不可少的工作,特别是开发电子商务网站。既然讲到ADO数据对象,那么就顺便简单地介绍一下ADO数据对象及其功能。ADO数据对象共有七种独立的对象,他们分别是连接对象(Connection)、记录集对象(RecordSet)、域对象(Field)、命令对象(Command)、参数对象(Parameter)、属性对象(Property)和错误对象(Error)。功能请参见附录1。
ADO数据对象用来连接数据库的方式有两种,分别是ODBC和OLE DB方式,下面就分别介绍用这两种方式连接数据库的例子。在网络编程过程中,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
%>
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
%>
日志标签 ‘ADO’
通过ADO连接各种数据库的字符串翠集
2006年6月11日Recordset-BOF、EOF 属性
2006年3月13日BOF、EOF 属性
- BOF 指示当前记录位置位于 Recordset 对象的第一个记录之前。
- EOF 指示当前记录位置位于 Recordset 对象的最后一个记录之后。
返回值
BOF 和 EOF 属性返回布尔型值。
…
BOF、EOF 属性
- BOF 指示当前记录位置位于 Recordset 对象的第一个记录之前。
- EOF 指示当前记录位置位于 Recordset 对象的最后一个记录之后。
返回值
BOF 和 EOF 属性返回布尔型值。
说明
使用 BOF 和 EOF 属性可确定 Recordset 对象是否包含记录,或者从一个记录移动到另一个记录时是否超出 Recordset 对象的限制。
如果当前记录位于第一个记录之前,BOF 属性将返回 True (-1),如果当前记录为第一个记录或位于其后则将返回 False (0)。
如果当前记录位于 Recordset 对象的最后一个记录之后 EOF 属性将返回 True,而当前记录为 Recordset 对象的最后一个记录或位于其前,则将返回 False。
如果 BOF 或 EOF 属性为 True,则没有当前记录。
如果打开没有记录的 Recordset 对象,BOF 和 EOF 属性将设置为 True,而 Recordset 对象的 RecordCount 属性设置为零。打开至少包含一条记录的 Recordset 对象时,第一条记录为当前记录,而 BOF 和 EOF 属性为 False。
如果删除 Recordset 对象中保留的最后记录,BOF 和 EOF 属性将保持 False,直到重新安排当前记录。
以下表格说明不同 BOF 和 EOF 属性组合所允许的 Move 方法。
| MoveFirst, MoveLast | MovePrevious, Move < 0 | Move 0 | MoveNext, Move > 0 | |
| BOF=True, EOF=False | 允许 | 错误 | 错误 | 允许 |
| BOF=False, EOF=True | 允许 | 允许 | 错误 | 错误 |
| 同时为 True | 错误 | 错误 | 错误 | 错误 |
| 同时为 False | 允许 | 允许 | 允许 | 允许 |
允许使用 Move 方法并不能保证该方法成功定位记录,只是意味着调用指定的 Move 方法不会产生错误。
下表说明当调用各种 Move 方法但未成功定位记录时 BOF 和 EOF 属性设置所发生的情况。
| BOF | EOF | |
| MoveFirst, MoveLast | 设置为 True | 设置为 True |
| Move 0 | 没有变化 | 没有变化 |
| MovePrevious, Move < 0 | 设置为 True | 没有变化 |
| MoveNext, Move > 0 | 没有变化 | 设置为 True |
ADO中使用设定了密码的Access数据库
2006年2月25日Access2003以前的版本就有设置数据库密码的功能,同时在Access2003中提供了一个加密数据库的功能(这个功能 不知在Access2003之前是否存在),是给数据库进行编码,此种加密是防止用于以Access之外的工具打开数据库,使用Access或者其他ms提供的数据驱动程序打开数据库和加密之前没有区别,建议即给数据库设定密码,同时对数据库进行编码加密。
在AOD中使用设定了密码的,应这样设置:
| Dim Conn Set Conn= Server.CreateObject(“ADODB.Connection”) Conn.ConnectionString=”Provider=Microsoft.Jet.OLEDB.4.0;Data Source=” & Server.MapPath(AccessFile)&”;Persist Security Info=False;Jet OLEDB:Database Password=数据库密码” |
…
Access2003以前的版本就有设置数据库密码的功能,同时在Access2003中提供了一个加密数据库的功能(这个功能 不知在Access2003之前是否存在),是给数据库进行编码,此种加密是防止用于以Access之外的工具打开数据库,使用Access或者其他ms提供的数据驱动程序打开数据库和加密之前没有区别,建议即给数据库设定密码,同时对数据库进行编码加密。
在AOD中使用设定了密码的,应这样设置:
| Dim Conn Set Conn= Server.CreateObject(“ADODB.Connection”) Conn.ConnectionString=”Provider=Microsoft.Jet.OLEDB.4.0;Data Source=” & Server.MapPath(AccessFile)&”;Persist Security Info=False;Jet OLEDB:Database Password=数据库密码” |
1、provider是代表数据库提供者是什么样的数据库!如SQL Server是SQLOLEDB.1 Oracle 是ORAOLEDB。1等等!
2、Persist Security Info
Persist Security Info property specifies whether the data source can persist sensitive authentication information such as a password.
True:The data source object can persist sensitive authentication information such as a password along with other authentication information.
False:The data source object cannot persist sensitive authentication information.
您可以参考下面的网站:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/adosql/adoprg04_97g9.asp
另:SQLServer数据库中连接字符串有一个参数Initial Catalog,是表示数据库名是什么!