代码改变世界

Recordset属性与方法

2007-03-28 11:32  zhangbaoyu  阅读(2214)  评论(0编辑  收藏  举报
关于分页: 
首先,我们可以为 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