红皮书总结
今天总结红皮书,从昨天的讲解中,ADO共有七个对象,分别是Recurdset(记录集),Connection(链接),Command(命令),Error(错误),Parameter(参数),Field(字段)Property(属性)。在这些对象中,有可以独立使用的也有辅助使用的,所以给他们区分三个独立对象和四个辅助对象。
三个独立对象:
Recurdset:记录集对象,保存记录集,保存来至基本表或命令对象返回的结果,使用记录集几乎可以完成所有的数据操作。主要属性:CursorLocation:指定临时表的位置,分为客户端和服务端CursorType:指定游标类型(一般为adOpenStatic)LockType:指定锁的类型,一般使用adLockOptimistic
Connection:连接对象,用户创建数据源连接,使用之前建立连接,目的是指明数据库的类型、数据库所在的IP地址、数据库名、登录名、密码等。主要属性为:ConnectionString:参数指明User ID(数据库用户ID)、Password(登录密码)、Initial Catalog(数据库名)、Data Source(服务器名称)
Command:命令对象,用于执行对数据库的增、删、改、查等命令操作。CommandType:指明Command对象的类型AdCmdText /AdCmdTable / AdCmdStoredProc / AdCmdUnknown
四个非独立辅助对象:
Field:字段对象,依赖于记录集对象Recordse使用,可以使用Fields集合获得记录几种的字段信息。
Parameter:参数对象,依赖于命令对象Command使用,用于参数查询和命令查询,可进行预编译,提高执行速度。
Property:属性对象,每个链接对象,命令对象,记录集对象和字段对象都有一个属性对象集合,属性对象可以获取特定对象的主要信息。
Error:错误对象,依赖链接对象Connection,访问数据库过程中发生错误,错误保存到链接对象的Errors集合中。
在红皮书的五个例子中:
实例1是通过代码链接数据库,主要应用的是Connection和Recordse,通过相对路径访问创建的Access数据库。
objCn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & App.Path & "\实例1.mdb;Mode=ReadWrite|Share Deny None;Persist Security Info=False"
实例2是通过数据源链接的,建立ODBC数据源,用ADO访问数据库。
Dim objCn As Connection
Private Sub Form_Load()
Set objCn = New Connection '实例化Connection对象
objCn.Open "DSN=实例2DSN" '建立数据库连接
End Sub
实例3是通过控件链接数据库,通过添加Adodc控件,从Adodc控件的属性中添加访问数据库路径。
Private Sub Adodc1_MoveComplete(ByVal adReason As ADODB.EventReasonEnum, _
ByVal pError As ADODB.Error, _
adStatus As ADODB.EventStatusEnum, _
ByVal pRecordset As ADODB.Recordset)
'使 ADO Data 控件显示当前记录编号和总记录数
Adodc1.Caption = "当前记录:" & Adodc1.Recordset.AbsolutePosition _
& "/" & Adodc1.Recordset.RecordCount
End Sub
实例4增加DataGrid1控件的应用。
实例5是通过代码链接数据库,但是应用了Cmd查询控件,提高了数据查询的效率,因为索引的增加,更新时会时间加长。
Private Sub cmdQuery_Click()
Dim objRs As New Recordset
objCmd("用户名") = "%" & txtUser & "%"
Set objRs = objCmd.Execute()
MSFlexGrid1.Cols = objRs.Fields.Count
For i = 0 To objRs.Fields.Count - 1
MSFlexGrid1.TextMatrix(0, i) = objRs.Fields(i).Name
Next
n = 0
While Not objRs.EOF
MSFlexGrid1.AddItem (objRs!用户名 & vbTab & objRs!口令)
n = n + 1
objRs.MoveNext
Wend
'显示获得的记录条数
Label4 = "共获得" & n & "条查询结果"
End Sub

浙公网安备 33010602011771号