ADO(activex Date Object)是Microsoft的universal Data Access 发展策略的一个重要组成部分,它将取代Data access object(DAO)和remote Data object(RDO) 两种技术。使用ADO,不仅仅可以在Visual Basic中开发数据库应用程序,还可以在Activeserver pages中构建Web数据库应用程序。
ADO通OLE DB实现对不同类型数据源的访问。OLE DB是一种最底层的编程接口,它支持关系或非关系型的数据源,比如各种类型的数据库、电子表格、电子邮件等。它有三大部分组成包括:数据提供者(Data Provider)数据消费者和服务组件。
通过下图来了解他们之间的关系。
屏幕剪辑的捕获时间:2012-7-31 20:40
下面通过思维导图来进行进一步的学习。
接下来我们学习ADO对象模型:
屏幕剪辑的捕获时间:2012-7-31 21:00
一图胜过千言万语,我们可以看到ADO对象模型分为两大类对象即:独立对象和非独立对象。接下来进一步学习三种独立对象:
一、使用Connection对象
任何数据库访问操作都建立在连接的基础上,在连接字符串中,必须指定正确的数据提供者、数据库、数据库服务器、访问数据库身份验证方式以及用户名、口令等信息。连接字符串中针对不同类型的提供者(Provider)有各种不同的参数。
例如:下面的代码演示了通过多种方法来使用Connection对象创建SQL server和ODBC数据源的连接。在例子中使用了连接的Connection Timeout属性设置连接超时限制,并使用State属性检查是否正确打开了连接状态。还定义了一个函数Getstate来判断连接打开情况。
(一)、打开SQL server数据源
Set cnn1=New ADODB.Connection
cnn1.connectionString="Provider=SQLOLEDB;database=myvbdatabase;"
"server=(local);integrated Security=SSPI"
cnn1.Connection Timeout=30
cnn1.Open
(二)、 使用DSN标记打开ODBC数据源
Set cnn2=New ADODB.Connection
cnn2.ConnectionString="DSN=mySQLsODBC;UID=sa;PWD=;"
cnn2.open
(三)、使用DNS和OLE DB标记打开连接
cnn3.ConnectionString="Data Source=mySQLODBC;User Id=sa;Password=;"
cnn3.Open
(四)、使用Jet连接Access数据库
Set cnn4=New ADODB.Connection
cnn4.ConnectionString="Provider=Microsoft.jet.OlEDB.3.51;" &_
"Data Source=D:\VB精彩范例\01\数据库\实例1.mdb"
cnn4.open"mySQLODBC","sa",""
(五)、使用一个函数Getstate来判断连接打开情况。
Public Function GetState(intState As integer)AS String
Select Case intStae
Case adStateClosed
GetState="未能打开数据源连接"
Case adStateOpen
Getstate="成功建立数据源连接"
End Select
End Function
二、使用Recordset对象
Recordset对象用于保存执行查询后获得的记录集。在使用时可以根据使用记录集的情况设置不同的游标类型。游标类型决定了访问记录集的方式、是否可修改记录集中的数据以及是否可将记录集的修改返回数据库。ADO定义了4种游标类型。这四种类型分别为仅向前游标(adopenforwardOnly默认游标)、键集游标(adOpenKeyset)、动态游标(adOpenDynamic)和静态游标(adOpenStatic)
下面的例子通过使用Recordset对象浏览记录。
(一)、打开SQL server数据源连接
Public Sub TestRecordset()
Dim cnn1 As ADODB.Connection,rs AS New ADODB.Recordset
Dim strOut As String,row As Record
'打开SQL Server数据源连接
Set cnn1=New ADODB.Connection
cnn1.ConnectionString="Provider=SQLOLEDB;database=myvbdatabase;"&_
"server=(local);UID=sa;PWD=;"
cnn1.Connectiontimeout=30
cnn1.Open
(二)、定义游标类型
rs.CursorType=adOpenForwardOnly
Set rs.ActiveConnection=cnn1
rs.Open"Select*from Employee"
(三)、获得记录集中的数据
While Not rs.EOF
For i=0 To rs.Fields.Count-1
strOut=strOut &" "&rs.Fields(i).Value
Next
strOut=strOut & vbCr
rs.MoveNext
Wend
三、使用Command对象
Command对象可用于执行各种SQL命令或者是存储过程。下面的例子使用Command对象执行SQL命令在SQL server服务器上创建指定的数据库。
(一)、打开SQL server数据源连接
Public sub TestCommand()
On Error GoTo doError
Dim cnn1 As ADODB.Connection, Cmm1 As New ADODB.Command
'打开SQL Server 数据源连接
Set cnn1=New ADODB.Connection
cnn1.Connectionstring="Provider=SQLOLEDB;server=(local);UID=sa;PWD=;"
cnn1.ConnectionTimeout=30
cnn1.Open
(二)、使用Command对象执行SQL命令在SQL server服务器上创建指定的数据库。
cmm1.CommandText="Create DataBase myTestDatabase"
cmm1.CommandType=adCmdText
Set cmm1.ActiveConnection=cnn1
Cmm1.Execute
Cnn1.Close
Exit Sub
以上就是我对ADO简单的理解,希望在今后的学习中获得更多的完善。