(Last Updated On: 2021-09-06)

为了更精确地跟踪数据,要用RecordSet组件创建包含数据的游标。游标就是储存在内存中的数据。

rs = Server.CreateObject("ADODB.RecordSet")
rs.Open(sqlStr,conn,1,A)
'注:A=1表示读取数据;A=3表示新增、修改或删除数据。

在RecordSet组件中,常用的属性和方法有:

  • rs.Fields.Count:RecordSet对象字段数。
  • rs(i).Name:第i个字段的名称,i为0至rs.Fields.Count-1
  • rs(i):第i个字段的数据,i为0至rs.Fields.Count-1
  • rs(“字段名”):指定字段的数据。
  • rs.Record.Count:数据记录总数。
  • rs.EOF:是否最后一条记录。
  • rs.MoveFirst:指向第一条记录。
  • rs.MoveLast:指向最后一条记录。
  • rs.MovePrev:指向上一条记录。
  • rs.MoveNext:指向下一条记录。
  • rs.GetRows:将数据放入数组中。
  • rs.Properties.Count:ADO的ResultSet或Connection的属性个数。
  • rs.Properties(item).Name:ADO的ResultSet或Connection的名称。
  • rs.Properties:ADO的ResultSet或Connection的值。
  • rs.close():关闭连接。

使用ADO连接数据库进行查询的时候,数据库将查询结果返回查询端,在查询端的内存里面就会有一个列表,这个列表存放的就是查询的结果。这个内存中的列表就是数据集。在你的程序里面rs就是表示这个数据集。bof表示rs当前的指针是指在了数据集的前面,比如数据集里面有编号为1,2,3,4的4条记录,但是rs指向的编号是-1,这样就会符合了bof的情况。同理,当rs的指针指向5,而第五条记录并不存在,这样就会产生了eof的情况。

如果同时产生了bof和aof的情况,就是说rs的指针既在上界之外也在下届之外,这样只有一种情况,就是rs所代表的数据集是空的,这样rs的指针无论是指到什么地方都是同时具有bof和eof的属性。

使用 if rs.bof and rs.eof then 这个判断可以判别rs里面是否有没有数据集,如果符合这个条件,说明数据集是空的,在程序中就要绕开对rs里字段的访问。


GetRows用法举例

Dim Rs_Cate
Dim Arr_Cate
Set Rs_Cate=Conn.ExeCute("SELECT ID,Title,Intro FROM T_Cate ORDER BY ID ASC")
Arr_Cate=Rs_Cate.GetRows
Set Rs_Cate=Nothing

语法:array = recordset.GetRows( Rows, Start, Fields )

  • Fields 可选,变体型,代表单个字段名、顺序位置、字段名数组或顺序位置号。ADO 仅返回这些字段中的数据。
  • 当 GetRows 方法返回数据时,数组变量将自动调整到正确大小。
  • 在调用 GetRows 后,下一个未读取的记录成为当前记录,或者如果没有更多的记录,则 EOF 属性设置为 True。

返回值:返回二维数组。

参数

Rows 可选,长整型表达式,指定要检索记录数。默认值为 adGetRowsRest (-1)。

Start 可选,字符串或长整型,计算得到在 GetRows 操作开始处的记录的书签。也可使用下列 BookmarkEnum 值。

常量说明
AdBookmarkCurrent从当前记录开始。
AdBookmarkFirst从首记录开始。
AdBookmarkLast从尾记录开始。