17.10 ADO对象模型
Connection对象 -----ErrorS集合-----Error对象
Command对象 -----Parameters集合 ------Parameter对象
RecordSet对象 -----Fields集合 -----Field对象
17.11 Connection对象可以完成的操作:连接数据源打开数据库;执行一个数据库操作命令;利用Error对象检查数据源返回的出错信息。
17.12 销毁内存中的对象:Set 对象名= Nothing
17.13 Command对象的CommandText属性相当于ADO数据控件的RecordSource属性;
Command对象的CommandType属性相当于ADO数据控件的CommandType属性
17.14 RecordSet对象的主要功能是建立记录集,并支持对记录集中各数据的各种操作。允许用户直接获取数据,因此RecordSet对象与ADO的访问过程无关。
17.15 CursorType属性:
adOpenDynamic动态游标:反映所有用户对数据的修改,支持向前及向后移动;
adOpenStatic静态游标:不能反映其他用户的修改,支持向前及向后,当打开客户端RecordSet对象时,adOpenStatic为唯一允许的游标类型。当打印报表和其他不需要即时完成更新数据的应用程序来说很有用。
adOpenFowardOnly仅向前游标:默认值。仅支持向前移动,其他与adOpenStatic一致。
adOpenKeyset键集游标:介于动态和静态游标。只看到其他用户更改的看不到添加删除的
17.16 CursorLocation属性:
adUseClient:本地客户端游标。将整个结果集传给客户端,网络流量大但下载后浏览速度快
adUseServer:默认值,仅传送客户端需要的数据,网络流量小但服务器资源消耗大。不支持BookMark属性(书签,快速再定位)和AbsolutePosition属性
adUseNone:没有使用游标服务。
17.17 RecordSet.Open方法:
myRs.Open Source, ActiveConnection, CursorType, LockType, Options
1)Source支持的类别: 5)Options的可选项
一个返回记录的Command对象 ///adCmdFile
SQL语句 ――adCmdText
表名 ――adCmdTable
存储过程名 ――adComdStoredProc
2)ActiveConnection:已打开的Connection对象;一个连接字符串
示例: Dim myCnn As New ADODB.Connection
Dim myRs As New ADODB.RecordSet
myCnn.Connection = “Provider = SQLOLEDB.1;User ID = sa;”_
& “Initial Catalog = 商品经营管理数据库;Data Source=(local)”
myCnn.Open ‘别忘了“打开”
myRs.Source = “select * from T_Customer”
myRs.ActiveConnection = myCnn
myRs.CursorType = adOpenDynamic
myRs.CursorLocation = adUseClient
myRs.Open , , , , adCmdTalbe
17.18 创建RecordSet对象的三种方法:
1)使用Connection对象:Set myRs = myConn.Execute(“select * from T_customer”);
2)使用Command对象:Set myRs = myComm.Execute;
3)直接使用Open方法:myRs.Open , , , ,
17.19 Error对象:如果最后一次的操作成功则这个集合为空。只有在OLE DB层产生错误才会将每个错误被翻译成Error对象,如果指向一个不存在的提供者则Errors集合不会得到任何信息,因为ADO不能发现这个指定的驱动程序,因此会将错误传递到Visual Basic Errors中。
17.20 三对象结合使用的典型示例:
Dim myCnn As New ADODB.Connection
Dim myCmm As New ADODB.Command
Dim myRs As New ADODB.RecordSet
myCnn.ConnectionString = “Provider = SQLOLEDB.1;User ID = loginID;” _
& “Initial Catalog = jessymin;Data Source =(local) ”
myCnn.Open ‘别忘了“打开”
Set myCmm.ActiveConnection = myCnn
myCmm.CommandText = “select * from T_Customer”
Set myRs = myCmm.Execute
17.21 VB自定义函数示例:将字段空值转化为空字符串
Private Function convertNull(val As Variant) As Variant
If IsNull(val) = True Then
convertNull = “”
Else
convertNull = val
End If
End Function