030101.htm
来自「提供一个VB学习教程,入门级。来源于网上」· HTM 代码 · 共 162 行 · 第 1/2 页
HTM
162 行
该属性应在建立连接之前设置,更改 CursorLocation 属性不会影响现有的连接。<br>
远程数据服务用法 当用于客户端 (ADOR) Recordset 或 Connection 对象时,只能将 CursorLocation 属性设置为 adUseClient。<br>
★ CursorType: 指示在 Recordset 对象中使用的游标类型。AdOpenForwardOnly 仅向前游标,默认值。除了只能在记录中向前滚动外,与静态游标相同。当只需要在记录集中单向移动时,使用它可提高性能。 <br>
AdOpenKeyset 键集游标。尽管从您的记录集不能访问其他用户删除的记录,但除无法查看其他用户添加的记录外,键集游标与动态游标相似。仍然可以看见其他用户更改的数据。 <br>
AdOpenDynamic 动态游标。可以看见其他用户所作的添加、更改和删除。允许在记录集中进行所有类型的移动,但不包括提供者不支持的书签操作。 <br>
AdOpenStatic 静态游标。可以用来查找数据或生成报告的记录集合的静态副本。另外,对其他用户所作的添加、更改或删除不可见。 <br>
说明:使用 CursorType 属性可指定打开 Recordset 对象时应该使用的游标类型。Recordset 关闭时 CursorType 属性为读/写,而 Recordset 打开时该属性为只读。<br>
如果将 CursorLocation 属性设置为 adUseClient 则只支持 adOpenStatic 的设置。<br>
★ Filter属性:过滤器。对记录集进行筛选,返回记录集中满足条件的所有记录,该属性指定一个筛选字符串,为一个“字段-比较符号-值”的条件表达式,当该属性赋值后,记录集立即变成筛选后的方式,包括如 AbsolutePosition、AbsolutePage、RecordCount 和 PageCount等属性都将改变,“变”成了一个“新”记录子集,当前记录移动到记录子集的第一个记录。而当清除 Filter 属性后,记录集立即恢复,当前记录位置将移动到原Recordset 的第一个记录。<br>
关于“字段-比较符号-值”的说明:“字段” 必须为 Recordset 中的有效字段名。如果字段名包含空格,必须用方括号将字段名括起来。<br>
“比较符号”必须使用的操作符为:<、>、<=、>=、<>、= 或 LIKE。<br>
“值” 是用于与字段值(如 'Smith'、#8/24/95#、12.345 或 $50.00)进行比较的值。字符串使用单引号而日期使用井号 #(注:在SQL中不用#号),对于数字,可以使用小数点、货币符号和科学记数法。如果 “比较符号” 为 LIKE,“值” 则可使用通配符。ADO和SQL只允许使用下划线(_) 和百分号 (%) 通配符,而且必须为字符串的尾字符。DAO只允许使用问号(?)和星号(*)作通配符.“值” 不可为 Null。在 LIKE 子句中,可在样式的开头和结尾使用通配符(如 LastName Like '*mit*'),或者只在结尾使用通配符(如,LastName Like 'Smit*')<br>
Filter属性还有几个特殊值可供选择:AdFilterNone 删除当前筛选条件并恢复查看所有记录。同空字符串””。 AdFilterPendingRecords 允许只查看已更改且尚未发送到服务器的记录。只能应用于批更新模式。 AdFilterAffectedRecords 允许只查看上一次 Delete、Resync、UpdateBatch 或 CancelBatch 调用所影响的记录。 AdFilterFetchedRecords 允许查看当前缓冲区中的记录,即上一次从数据库中检索记录的调用结果。 AdFilterConflictingRecords 允许查看在上一次批更新中失败的记录。<br>
★ GetRows方法: 将Recordset的多个记录值复制到数组中,应当先定义一个变体变量,然后将GetRows的返回值赋给它,这个变量就成了一个二维数组,其第一维下标标识原所在的列(字段),第二维下标标识原所在的行(记录),每一个交叉点就是一个值了,如:<br>
Dim VariData As Variant<br>
VariData = DataEnvironment1.rsCommand1.GetRows<br>
x = UBound(VariData, 1)<br>
y = UBound(VariData, 2)<br>
For m = 0 To x<br>
For n = 0 To y<br>
Print VariData(m, n); ‘用分号表示同一字段的数据打印在同一行。<br>
Next n<br>
Print<br>
Next m<br>
该方法格式:变体变量=记录集.GetRows([rows],[start],[fields])有三个可选参数,第一个参数Rows限制返回的记录数量,即要复制几行记录,它决定的是变体数组的第二维长度,缺省情况下,将读取记录集中的所有记录。第二个参数Start指定从哪个记录位置开始向数组复制记录,可以是一个记录书签字符串,或以下三个常数之一:adBookMarkCurrent(当前记录)adBookMarkFirst(首记录录)adBookMarkLast(尾记录);第三个参数Fields限制返回的记录字段,即要复制哪几列,它决定的是变体数组的第一维长度,缺省情况下,将读取记录集中的所有字段,该参数可设置为单个字段名字符串,或多个字段名字符串组成的数组。<br>
注意:使用该方法复制记录值时,记录指针将随之移动,每复制一行后,指针自动移动到下一行。<br>
★ GetString: 将 Recordset 按字符串值的变体型 (BSTR) 返回。<br>
★ MarshalOptions: 汇集选项。指示要被调度返回服务器的记录。可选设置值:AdMarshalAll 默认值。表明所有行将返回到服务器。 AdMarshalModifiedOnly 表明只有已修改的行返回到服务器。当使用客户端 (ADOR) Recordset 时,已在客户端被修改的记录将通过称作“调度”的技术写回中间层或 Web 服务器。<br>
★ MaxRecords: 指示通过一次查询返回 Recordset 的记录的最大数目。使用 MaxRecords 属性可对从数据源返回的记录数加以限制。该属性的默认设置为零,表明提供者返回所有所需的记录。Recordset 关闭时,MaxRecords 属性为读/写,打开时为只读。<br>
★ NextRecordset:清除当前Recordset对象,执行下一个命令返回新的Recordset对象。当一个命令语句是复合语句(即用分号隔开的多条命令)?时,用该方法依次执行下一条命令。格式:Set recordset2=recordset1.NextRecordset。例如:<br>
Dim rst As ADODB.Recordset<br>
Dim strCnn As String<br>
Dim strCmd As String<br>
strCnn = "Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=C:\工商所收费系统\MyDatabase.mdb"<br>
strCmd = "SELECT * FROM unitrecord;SELECT * FROM invoice" ‘AccessSQL不支持。<br>
Set rst = New ADODB.Recordset<br>
rst.Open strCmd, strCnn, adOpenDynamic, adLockOptimistic, adCmdText<br>
Print rst("Name")<br>
Set rst = rst.NextRecordset<br>
Print rst("Name")<br>
rst.Close<br>
★ Open:打开一个游标,即记录集。<br>
★ PageCount:页面数。<br>
★ PageSize:每页大小,缺省为10。<br>
★ Properties:<br>
★ Resync:<br>
★ Save:<br>
★ Seek方法:使用索引进行查询,比用Find方法速度更快,但只能用于以表形式打开的记录集,不能用于动态记录集或快照型记录集,不能在远程服务器表上使用Seek,因为远程数据源不能以表形式打开。而且这个表预先定义了索引字段,使用Seek方法前,要在代码中用Index属性指定当前要使用的索引,格式为:记录集对象.Index=索引名。索引名是在表的设计阶段定义好的。注意索引名不等于字段名,只不过是以某个字段为标准的。设置好要使用的索引后,使用Seek进行查找,格式:Recordset对象.Seek 值,这里的值参数指定按当前索引所属字段进行查找的值,若找到,则指针指到此记录,若没找到,则EOF为True.<br>
一般情况下,在ADO中都不用Seek进行定位,而是用SQL查询生成动态记录集。只是在DAO中有一些使用,如:<br>
Private Sub Command2_Click()<br>
Data1.Recordset.Index = "indexName"<br>
Data1.Recordset.Seek "=", "李春生"<br>
Text1.Text = Data1.Recordset(2)<br>
End Sub<br>
其格式有一点不同,它的第一参数指定一个比较符号,第二个参数才是值,需要在属性窗口中将DATA1的RecordsetType属性设置为0-Table。 <br>
★ Sort:<br>
★ Source:数据源。<br>
★ State:对象的当前状态,有adStateClosed(关闭)或adStateOpen(打开)。<br>
★ Status:批量操作或海量操作的状态。<br>
★ StayInSync:<br>
★ Supports方法:判断本记录集是否具有某个方面的功能。如:是否允许增添记录If rst.Supports(adAddnew)=True then rst.Addnew,如果具有某项功能则返回True,不具备则返回False,该方法的一个参数是指定哪个方面,如adDelete是否允许删除记录,adBookmark是否支持书签设置,adUpdate是否允许更新(即修改)数据源,adIndex是否可以使用index属性设置索引,adSeek是否可用Seek方法定位记录指针。再如判断是否支持索引:MsgBox DataEnvironment1.rsCommand1.Supports(adIndex)。<br>
记录集有五种不同的类型:<br>
Table:表示数据库中一张表,记录集与数据库中的数据同步,可通过记录集对数据库添加,删除等操作。<br>
Dynaset:一张查询结果集,可由多个表中不同数据组成,可通过记录集对数据库进行添加、删除等操作。<br>
Dynamic:与dynaset相似,但它有这样的功能:当其他用户修改记录集的基表(数据库表)时,会将修改反映到这个记录集中,主要用于多用户操作。<br>
SnapShot:一张只读的查询结果集,可包含不同表中数据记录,不能对记录添加,修改等,可用于浏览数据库。<br>
Forward-Only:一个没游标的SnapShot记录集,只能从头到尾顺序经过所有记录,不能任意移动。</font>
<p align="center">
<br>
< <a href="020404.htm">上一页</a>--<a href="http://www.xxby.com" target="_blank">华生小屋</a>--<a href="030102.htm">下一页</a>
><br>
</td>
</tr>
</table>
</center>
</div>
</body>
</html>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?