关于分页:
首先,我们可以为 PageSize 属性设置一个值,从而指定从记录组中取出的构成一个页的行数;然后通过RecordCount 属性来确定记录的总数;再用记录总数除以 PageSize 就可得到所显示的页面总数;最后通过 AbsolutePage 属性就能完成对指定页的访问
----------------------------------------------------------
BOF 属性:目前指标指到 RecordSet 的第一笔。
EOF 属性:目前指标指到 RecordSet 的最后一笔。
Move 方法:移动指标到 RecordSet 中的某一条记录。
AbsolutePage 属性:设定当前记录的位置是位于哪一页
AbsolutePage 属性设定当前记录的位置是位于哪一页的页数编号;使用 PageSize 属性将 Recordset 对象分割为逻辑上的页数,每一页的记录数为 PageSize( 除了最后一页可能会有少于 PageSize 的记录数 )。这里必须注意并不是所有的数据提供者都支持此项属性,因此使用时要小心。与 AbsolutePosition 属性相同, AbsolutePage 属性是以 1 为起始的,若当前记录为 Recordset 的第一行记录, AbsolutePage 为 1。可以设定 AbsolutePage 属性,以移动到一个指定页的第一行记录位置。
AbsolutePosition 属性:目前指标在 RecordSet 中的位置。
若您需要确定目前指标在 RecordSet 中的位置,您可以用AbsolutePosition 属性。AbsolutePosition 属性的数值为目前指标相对於第一笔的位置,由 1 算起,即第一笔的 AbsolutePosition 为 1。注意 , 在存取 RecordSet时,无法保证 RecordSet 每次都以同样的顺序出现。 若要启用 AbsolutePosition,必须先设定为使用用户端cursor( 指针 ), asp 码如下:
rs2.CursorLocation = 3
PageCount 属性:显示 Recordset 对象包括多少“页”的数据。
使用 PageCount 属性,决定 Recordset 对象包括多少“页”的数据。这里的“页”是数据记录的集合,大小等于 PageSize 属性的设定,即使最后一页的记录数比 PageSize 的值少,最后一页也算是 PageCount 的一页。必须注意也并不是所有的数据提供者都支持此项属性。
PageSize 属性:显示 Recordset 对象每一页显示的记录数。
PageSize 属性是决定 ADO 存取数据库时如何分页显示的关键,使用它就可以决定多少记录组成一个逻辑上的“一页”。设定并建立一个页的大小,从而允许使用 AbsolutePage 属性移到其它逻辑页的第一条记录。PageSize 属性能随时被设定。
RecordCount 属性:显示 Recordset 对象记录的总数。
rs.RecordCount:游标中的数据记录总数。
rs.MoveFirst: 指向第一条记录。
rs.Move(6): 移动到第6条记录。
rs.MoveLast: 指向最后一条记录。
rs.MovePrev: 指向上一条记录。
rs.MoveNext: 指向下一条记录。
rs.GetRows: 将数据放入数组中
Recordset对象的Open函数:
Rs.Open 数据表名称或SQL指令,Connection对象,Recordset类型,锁定类型
参数一:若指定成数据表名称,则打开整个数据表,若指定成Select指令,则所建立的Recordset对象是Select指令选取的数据记录的结果。
参数二:传入某一个已打开的数据库的Connection对象。
参数三:是Recordset类型,它含有下表的四种设置值:
Recordset类型的设置值 意义
AdOpenForwardOnly(=0) 只读,且当前数据记录只能向下移动
AdOpenStatic(=3) 只读,当前数据记录可自由移动
AdOpenKeyset(=1) 可读写,当前数据记录可自由移动
AdOpenDynamic(=2) 可读写,当前数据记录可自由移动
AdOpenKeyset和AdOpenDynamic的差别只表现在多人共用数据库时,若以AdOpenKeyset 模式打开数据表,则无法看到其他人新增的数据记录(除非重新启动),如果是以AdOpenDynamic模式打开数据库,则可以看到其他人新增的数据记录。
参数四:是锁定类型,它同样含有四种设置值,见下表:
锁定类型的设置值 意义
adLockReadOnly(=1) 默认值,用来打开只读的数据记录
adLockPessimistic(=2) 悲观锁定
adLockOptimistic(=3) 乐观锁定
adLockBatchOptimistic(=4) 批次乐观锁定
Recordset对象
记录集对象,用于对TRS数据库/视图进行检索并获取检索结果,以及进行数据库记录维护等操作。
【属性】(带的为只读属性,带中括号的为可选参数)
Handle: long
检索句柄,可用该句柄调用Client API的检索函数。
Sources: String
当前检索的目标数据库/视图列表。
WhereExpr: String
当前检索的条件表达式。
SortMethod: String
当前检索的结果记录排序方式。
StatExpr: String
当前检索的统计结果表达式列表。
DefaultCols: String
当前检索条件表达式中缺省的目标字段列表。
Options: long
当前检索的选项掩码。为下列各掩码值的“或”:统一排序(MIXSORT)、按字检索(NOTSEGMENT)、不存历史(NOTHISTORY)、无命中点(NOTPOINT)、字段与(DOCAND)、字段或(DOCOR)、字段非(DOCNOT)、字段异或(DOCXOR)。
ResultID: short
检索结果的标识。
TotalSteps: short
包括当前检索结果在内的已保存的检索结果历史的总步数。
SectionNum: short
实际被检索的数据库/视图总数。除非检索目标数据库中含有相同的数据库,否则等于检索目标数据库的个数
。 StatisticNum: short
统计子表达式的个数。
TotalRecs 或 RecordCount: long
指示当前记录集中的记录总数。
TotalHits 或 HitCount: long
指示当前记录集中的命中点总数。只有在记录检索时没有指定不存命中点时才有效。
SectionName (VARIANT Section): String
取结果集里指定的命中数据库/视图名。Section为对象的序号,从零开始,缺省为零。
SectionType (VARIANT Section): String
取结果集里指定命中对象的类型,只有数据库(DATABASE)和视图(VIEW)两种可能。Section为对象的序号,从零开始,缺省为零。
ColumnNum (VARIANT Section): short
取结果集里指定命中对象的字段数。Section为对象的序号,从零开始,缺省为零。
RecordNum (VARIANT Section): short
取结果集里指定命中对象的命中记录数。Section为对象的序号,从零开始,缺省为零。
HitPointNum (VARIANT Section): short
取结果集里指定命中对象的命中点数,只有在记录检索时没有指定不存命中点时才有效。Section为对象的序号,从零开始,缺省为零。
StatResult (VARIANT Section, VARIANT Statis): double
取检索的统计结果。Section为对象的序号,从零开始,缺省为-1,表示取所有对象上的统计结果。Statis为统计表达式序号,从零开始,和记录检索函数中的统计结果表达式一一对应。
BufferSize: long
检索结果缓冲区大小,以记录为单位,缺省为128。
PageSize: long
记录集每页所包含的记录数,读取记录时以此数为单位。缺省为16。
CutSize: short
DOCUMENT/BIT字段概览截断长度,为零表示不进行截断。缺省为65535,即只取文本内容,不取二进制文件。
SummarySet: String
读取的概览字段集,缺省为空,表示所有字段。
DetailSet: String
读取细览字段集,缺省为空,表示所有字段。
Separator: String
多值字段的分隔符,仅对DATE、NUMBER和CHAR类型字段有效,缺省为’;’。
URLToFile: BOOL
为TRUE表示对URL(统一资源定位)输出其对应的文件(如HTML等),而不是输出URL本身。缺省值为FALSE。
PageCount: long
指示当前记录集中所包含的数据页数。
CurrPage 或 AbsolutePage: long
当前记录所在页的序号,从1开始。
CurrRec 或 AbsolutePosition: long
当前记录的序号,从1开始。
BOF: BOOL
指示当前记录位置是否位于第一条记录之前,是则返回TRUE。
EOF: BOOL
指示当前记录位置是否位于最后一条记录之后,是则返回TRUE。
RecordID: long
当前记录的物理记录号
。 Section: short
当前记录所在命中数据库/视图的序号。
CryptDenied: BOOL
为TRUE表示当前记录密码不匹配。
Deleted: BOOL
为TRUE表示当前记录已被删除。
Relevance: double
当前记录相对于检索条件的相关性值。
Word: String
当前的词语。只在词语查询时有效。
HitNum: long
当前索引词的命中数。只在词语查询时有效。
Frequence: long
当前索引词的词频数。只在词语查询时有效。
IndentNum: short
当前索引词相对于主题词的深度。只在词语查询时有效。
UserGroup: String
添加/更新记录时指定记录对外开放的用户组。
SecurityCode: long
添加/更新记录时指定记录的密码级别。
Password: String
添加/更新记录时赋予记录的密码。
【方法】(带中括号的为可选参数)
Open (long Connection, BSTR Sources, VARIANT WhereExpr, VARIANT SortMethod, VARIANT StatExpr, VARIANT DefaultCols, VARIANT Options)
对数据库/视图进行检索,并把游标定位于第一条记录。Connection为连接句柄,Source指定检索的目标数据库/视图列表,WhereExpr、SortMethod、StatExpr分别为检索的条件表达式、排序方式和统计表达式,DefaultCols为缺省的目标字段列表,Options为检索选项掩码。
Reopen (long Connection, VARIANT ResultID)
使用检索结果ID重新建立结果集,并把游标定位于第一条记录。Connection为连接句柄,ResultID为检索结果标识号,缺省为零,表示上一次的检索结果。
Search (long Connection, BSTR Name, VARIANT Owner, VARIANT TargetExpr)
查询数据库的索引词或查询建库词典,并把游标定位于第一条词语。Connection为连接句柄,Name和Owner指定待查询的数据库/词典,TargetExpr为查询条件表达式。
Close
关闭检索结果记录集并释放所占用的资源。如要使用当前结果ID重新建立结果集请不要调用此方法。
Sort (VARIANT SortMethod, VARIANT MixSort)
对检索结果集进行重新排序。SortMethod指定结果记录的排序方式,为空表示取消排序。MIXSORT表示是否进行统一排序,缺省为FALSE。
Lockup (VARIANT Records, long RecordNum)
锁定检索结果以修改数据库记录。Records指向要锁定记录的逻辑记录号数组,RecordNum指定数组的大小。两者缺省均为零,表示解除所有记录的锁定。
Save (BSTR FileName, VARIANT Columns, VARIANT Records, VARIANT Format, VARIANT SourceMode)
把检索结果保存到文件里。FileName为保存的目标文件名,Columns和Records指定保存的字段列表和记录范围。Format指定保存记录的格式,SourceMode指定保存记录里包含的源文件的模式。
Clear
清除检索结果缓冲区。
Move (long MoveCount)
移动当前记录的位置,MoveCount参数指示移动的记录数,为正表示向前移,否则表示向后移。
MoveFirst
移动到记录集的第一条记录。
MoveLast
移动到记录集的最后一条记录
。 MovePrevious
移动到当前记录的前一条记录。
MoveNext
移动到当前记录的后一条记录。
Fields
返回结果记录集中当前记录的字段集合,是对象中的缺省调用方法。
AddNew
向记录集中添加一条新的记录,并把当前记录游标指向该记录。
Edit (VARIANT Where)
更新记录集中指定的记录。Where参数指定要更新记录的条件,缺省为空,表示更新当前记录。
Delete (VARIANT Where, VARIANT FastEnable)
从记录集中删除指定的记录。Where参数指定删除记录的条件,缺省为空,表示删除当前记录。FastEnable表示是否进行假删除,缺省为TRUE。
Update
保存对Recordset对象记录所做的修改。每次只能执行一项维护操作。
【注释】
1. 任何时候,Recordset对象所指的当前记录均为集合内的单个记录;
2. 词语查询和维护功能是4.5版本新增,使用方法大部分与数据库/视图查询和维护一致,但部分属性和方法对它没有作用。
【举例】
set Connect= Server.CreateObject("TRSADO4.Connection")
Connect.Open "192.9.200.1", "8888", "system", "manager"
’ 取检索结果
set Records= Server.CreateObject("TRSADO4.Recordset")
Records.Open Connect, "RMRB", "中国", "-日期", "max(版次),min(版次)", "", 0
for i= 1 to Records.TotalRecs
Response.write Records("正文") + "
"
Records.MoveNext
next
’ 添加新记录
Recordset.AddNew
Recordset("日期").Value= "2000-10-1"
Recordset("正文").Value= "@D:/Readme.txt"
Recordset.Update
’ 修改记录内容 Recordset.Edit "版名=要闻"
Recordset("版次").Value= "版次+1"
Recordset.Update
’ 删除记录
Recordset.Delete "版次>10", True
Recordset.Update
Records.Close
Connect.Close