VB 版 (精华区)
发信人: zxfsnow (希望的春天), 信区: VB
标 题: 深入ADO4
发信站: 哈工大紫丁香 (2000年06月05日12:35:02 星期一), 转信
发信人: ming (drwxr-x---), 信区: VB
标 题: 深入ADO(4)
发信站: 虎踞龙盘东南站 (Tue Nov 2 10:36:15 1999), 转信
发信人: kkjj (流浪的蝴蝶), 信区: Programming
标 题: 深入ADO(4)
发信站: 安徽大学 遥津站 (Sat May 15 22:59:45 1999), 转信
书签(BookMark)
书签是任意的值,它可以唯一地标识记录集中的一行。在你需要将一个引用存储到特
定的记录时,你通常需要使用书签。如你可能猜到的那样,如果你通过标准的Clone方
法克隆一个记录集,那么书签就被复制了。源于不同的数据类型的ADO提供的书签有微
小的差别。如果记录集的行总是一个数据库记录,那么书签就可能是记录的排列值。该
定义应该是绝对一致的,因此你可以通过简单的算术操作来比较书签。
然而,记录集的来源可以是任何地方, 它包含的数据也可以寻址到不同的对象。此
外,ADO编程者不需要知道数据的内部结构。他或她仅仅是通过由行和域组成的接口来
进行利用它的。让我们来看一个例子。
Microsoft Active Directory Service Interfaces (ADSI)是起到的是一个OLE D
B提供者的作用。因此,它公开了ADO不同种类的对象:从Windows NT或Novell目录服务
到任何Lightweight Directory Access Protocal(LDAP)-可塑的目录服务。另外,整
个ADSI体系结构在跟任何提供对其他的目录的访问的服务的提供者相比时象是个无声的
客户那样进行工作.除了这些对象执行众所周知的和预定义的编程接口,这就是说,A
DSI它自身是这么一个公开的对象即它不知道对于任何ADO应用程序的细节.
有一个书签是用来标识这些对象中的一个。ADO应用程序和可能的诸如ADSI这样的提
供者都并不知道它。书签必须由提供者直接并且完全地管理。ADO通过OLE DB的Irowse
tLocate接口处理书签。如果提供者支持书签,它必须恰当的执行该接口。
Dim vBookmark As Variant
RS.CursorLocation = adUseClient
vBookmark = RS.Bookmark
.
.
.
RS.Bookmark = vBookmark
这代码说明了在代码中正确使用书签的方法。使用支持书签的指针类型是件重要的事
情。书签是个可读写的属性,你可以赋给它以任意值,包括连续的字符。
RS.Bookmark = “Hello, world”
如果你想在Visual Basic 6.0运行时应在用程序的书签所用的参数有问题时向你发出
消息进行提示。但终究书签的实际值应该总是对用户的应用程序是不可见的。
如果你需要比较书签,你必须使用ADO 2.0中公开的Recordset对象提供的CompareBo
okmark函数。该函数和Bookmark属性自身是直接映射到IrowsetLocate函数上。特别是
接口的定位方法如:Compare, GetRowsAt和GetRowsByBookmark,其名字具有自解释性
。图4显示了这世界上用到了记录集对象的所有新特性的最简单的Visual Basic代码。
记录集已经滤过了在ADO 2。0前的能力,但是2。0版还添加了查找和分类特性。基
本上说来,Sort属性影响了记录集树被访问的方式和被遍历的行的顺序。Filter属性决
定哪些行是对用户可见的。使用的掩码由一列布尔项或是由书签数组给出。你也可以用
通配符。最后,Find方法基于查找变址域来检索一行。Find方法的语法是:
Find (criteria, SkipRows, searchDirection, start)
查找的准则是一个按如下格式的字符串:
<FIELD Name> <operator> <VALUE>
所有的布尔操作符除Like外都是可能的。准则字符串举例如下:
City = 'Redmond' and Name Like 'Bill*'
这里也存在一些严格的语法要求。日期值必须附上一对#字符,单引号必须包围字符
串。
Find命令行允许你在开始查找之前跳过给定数目的行。初始位置(和那个你开始跳的
位置)就是Start参数。searchDirctiion决定了查找是自顶向下还是自下到上的。你可
以做一些事来加快查找处理的速度。首先,为记录集设定adUseClient指针,将你想检
索的域的Optimize 动态属性设定True。
FieldName.Properties(”Optimize”) = True
这种方式,可以更快的检索和访问域的内容。注意Optimize不是提供者的属性。它只
是在ADO内部定义和使用的。该属性仅在asUseClient指针被设置时被添加到Properties
集合中。
--
每一刻都存在,不一样的精彩
--
以科计为本,以产业报国!
超越自我,飞跃无限!
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.118.235.249]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:8.186毫秒