ADO(ActiveX Data Object), 是一种用以实现访问关系或非关系数据库的数据应用程序接口 .
ADO通过OLEDB实现对不同类型数据源的访问.而OLEDB则是一种底层的编程接口,他支持关系或非关系的数据源.Such as 数据库 ,电子表格,电子邮件,和文本文件等.
OLEDB包含三个部分:
①数据提供者
数据提供者:DataProvider。指任何数据的提供者 例如:
'建立数据库连接objCn.ConnectionString= "Provider=Microsoft.Jet.OLEDB.3.51;" & "Data Source="& App.Path & "\1.mdb "
此处为数据库提供了数据源
②数据消费者:
数据消费者:指使用数据提供者提供数据的应用程序。使用ADO的应用程序都是OLEDB的消费者
③服务组件
服务组件:就是数据消费者和数据提供者之间沟通的桥梁
下面是数据消费者,ADO ,OLEDB数据提供者和服务组件之间的关系
ADO对象模型
ADO 数据库的访问
1. 使用Data控件访问数据库
Data 控件
Dim objRsAs New Recordset, objCn As New Connection, intPage As IntegerPublic SubShowData(ByVal intPage As Integer)'实现分页记录显示功能DimintPageCount As Integer, intRecord As IntegerDimobjDataSource As New Recordset'创建一个局部Recordset对象保存objRs当前记录页数据ForintRecord = 0 To objRs.Fields.Count - 1 objDataSource.Fields.AppendobjRs.Fields(intRecord).Name, adVarChar, objRs.Fields(intRecord).DefinedSize Next objDataSource.Open '打开局部Recordset 对象 objRs.PageSize = Val(txtPageSize)'重新设置objRs每页显示的记录条数 objRs.AbsolutePage = intPage'重新设置objRs的当前记录页 For intRecord = 1 To objRs.PageSize '将当前记录页中的数据写入objDataSource objDataSource.AddNew objDataSource!用户名 = objRs!用户名 objDataSource!口令 = objRs!口令 objDataSource!身份 = objRs!身份 objRs.MoveNext If objRs.EOF Then Exit For Next Set DataGrid1.DataSource = objDataSource'设置为数据网格的数据源 txtPageMsg = intPage & "/"& objRs.PageCount '刷新当前记录页信息End Sub
- 使用DAO对象访问数据库
- 使用ADO Data控件访问数据库
ADO 控件
Private Sub Adodc1_MoveComplete(ByVal adReason AsADODB.EventReasonEnum, ByVal pError As ADODB.Error, adStatus AsADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)'使ADO Data 控件显示当前记录编号和总记录数Adodc1.Caption = "当前记录:" &Adodc1.Recordset.AbsolutePosition & "/" &Adodc1.Recordset.RecordCount End Sub
- 使用ADO对象访问数据库
Private Function Check_PassWord(ByVal UserName As String, ByValPassword As String) As ByteOn Error GoTo gpErrorDim objCn As New Connection, objRs As New Recordset, strCn AsString, strSQL As String'建立数据库连接objCn.ConnectionString ="Provider=Microsoft.Jet.OLEDB.3.51;" & "Data Source="& App.Path & "\1.mdb "objCn.Open '执行查询命令,获得用户登录口令'strSQL = "SELECT 口令 FROM 系统用户 WHERE 用户名='" &UserName & "'"Set objRs.ActiveConnection = objCnobjRs.Open (strSQL