Recordset 对象
用于代表一数据库表。Recordset对象是在你的Web应用程序和SQL Server之间的主要界面:
<% Set MyRs=Server.CreateObject(“ADODB.Recordset”) %>
集合
Fields
Fields集合是Field对象的集合(参看前面的“Field对象”部分)。Fields对象代表了在表中的所有列。
Properties
Properties集合是Property对象的集合(参看前面“Property对象”部分)。不同的数据提供者比如Microsoft SQL Server和Microsoft Aclearcase/" target="_blank" >ccess在Field对象的Properties集合内具有不同的属性。这些属性影响Fields对象的使用方法。
方法
AddNew [Fields],[Values]
向记录集内添加一条记录。Fields是记录集内某一域的名称。你可以通过使用域名称的数组来指定多域。不管那一种情况,你都可以使用域的排序位置而不是名称来指定域。Values是新记录上该域的值。假如你指定多域,values值是个数组。
CancelBatch [AffectRecords]
当记录集处于批修改模式下时,该方法用于取消任何要发生的修改。AffectRecords指明那些记录方法CancelBatch将要取消。你可以使用下表内的常数:
常数 |
描述 |
adAffectCurrent |
只为当前记录取消批处理修改。 |
adAffectGroup |
只为满足Filter属性设置的记录取消批处理修改。 |
adAffectAll |
对所有记录取消批处理修改(缺省设置) |
CancelUpdate
取消任何对当前记录的修改或者取消添加一个新的记录。假如没有记录被修改或者没有新记录添加入数据库内,就会产生错误。
Clone
返回一个该Recordset的一个复本。你只有在当前的记录集支持书签时才能克隆该记录集。
Close
关闭该记录集并且释放所有在该记录集内包含的数据。
Delete [AffectRecords]
删除当前记录,AffectRecord确定要删除的记录。你可以使用在下表内所示的常数:
常数 |
描述 |
adAffectCurrent |
仅删除当前的记录(缺省值) |
adAffectGroup |
删除满足Filter属性设置的记录。 |
GetRows( [Rows], [Start] , [Fields])
把记录接收到一个二维数组之内。该数组自动创建。数组的第一个索引指明记录的域;第二个索引标志该记录。Rows指明从记录集中接收多少条记录。缺省时接收所有的记录。Start指明从记录集中何处开始接收记录,这里使用了书签。所以如果想使用该参数,记录集必须支持书签功能。Fields是一个单独的域名或一个域名数组,我们用它来限制在数组中接收哪些域。
Move NumRecords, [Start]
在记录集的记录内往前或往后移动。如果NumRecords的数值为正,则当前记录就变成在记录集内的记录往前移动NumRecords后的记录。如果的NumRecords数值为负,则调用记录就变成记录集内的记录往后移动NumRecords后的记录。Start是一个书签。我们在移动记录时可以相对当前记录移动,也可以相对书签移动。为了使用该参数,记录集必须支持书签功能。
MoveFirst
使当前记录成为记录集内第一条记录。
MoveLast
使当前记录成为记录集内最后一条记录。
MoveNext
使当前记录成为记录集内下一条记录。
MovePrevious
使当前记录成为记录集内前一条记录。
NextRecordSet([RecordsAffected])
当一个Open或Execute方法返回多个记录集时,方法NextRecordSet清除当前记录集并且打开下一个记录集。RecordsAffected返回被方法NextRecordSet所影响的记录的数目。
Open [Source],[ActiveConnection],[CursorType],[LockType],[Options]
在记录集上打开一个游标。游标代表从一个表或者一个SQL查询的结果返回的记录。Source是一个Command对象的名称,一个SQL语句,一个表的名称,或者一个存储过程。ActiveConnection是一个Connection对象的名称或者一个连接字符串。CursorType 可以是下表所示的任意常数之一。
常数 |
描述 |
adOpenForwardOnly |
只允许在记录集内的记录间往前移动。(缺省值) |
adOpenKeyset |
反映由其它用户所做的对记录的改变或删除动作。然而并不反映由其它用户所做的添加新记录动作。 |
adOpenDynamic |
反映由其它用户所做的对记录的改变或删除动作。包括新添加的记录。 |
adOpenStatic |
不反映其它用户对记录所做的修改,删除或添加动作。 |
LockType指明当打开该记录集时,数据提供者用于锁定数据的类型。你可以使用下表所示的任意常数之一。
常数 |
描述 |
adLockReadOnly |
数据不能改变(缺省值)。 |
adLockPessimistic |
一般地,数据提供者在你一旦开始编辑数据时就锁定记录。 |
adLockOptimistic |
仅当Update方法被调用时,数据提供者锁定记录。 |
adLockBatchOptimistic |
用于批处理修改。 |
Options可以使由参数Sourc所代表的命令更有效地执行,它可以把将要执行的命令的类型告诉数据提供者(比如,SQL Server)。我们在当参数Sourc不是一个Command对象的名称时使用该参数。你可以使用下表所示的任一选项:
常数 |
描述 |
adCmdText |
以一个命令的文本定义形式来执行Source,比如一个SQL语句。 |
adCmdTable |
把Source当成一个表的名称。 |
adCmdStoreProc |
把Source当成一个存储过程。 |
adCmdUnknown |
未知的命令(缺省值)。 |
Requery
通过再次执行创建记录集所使用的命令来刷新在记录集内的所有数据。
Resync [AffectRecords]
同步在记录集内的记录和在数据库内的数据。并不反映新添加到数据库内的记录。AffectRecords指明该方法会影响哪些数据。它可以使用下表所示三个常数中的任意一个。
常数 |
描述 |
adAffectCurrent |
只影响当前记录。 |
adAffectGroup |
影响所有满足Filter属性设定的记录。 |
adAffectAll |
影响所有在记录集内的记录(缺省值)。 |
Supports (CursorOption)
通过返回一个值(TRUE或FALSE)来指明是否一个记录集支持一个给定的游标选项。你可以使用下表所示的任一常数。
常数 |
描述 |
adAddNew |
该记录集支持方法AddNew。 |
adApproxPosition |
该记录集支持属性AbsolutePosition和AbsolutePage。 |
adBookmark |
该记录集支持属性Bookmark。 |
adDelete |
该记录集支持方法Delete。 |
adHoldRecords |
该记录集支持在不需要发送所有缓存的改变和释放当前所有缓存记录情况下接收更多的数据和改变下一个接收位置。 |
adMovePrevious |
该记录集支持在不使用书签的条件下使用方法MovePrevious或Move在记录集内向后移动。 |
adResync |
该记录集支持方法Resync。 |
adUpdate |
该记录集支持方法Update。 |
adUpdateBatch |
该记录集支持批修改。 |
Update [Fields],[Values]
保存任何新添加的记录和对当前记录所做的任何修改。Fields是在记录集内某个域的名称。你同样可以使用域的名称数组来指定多个域。在任何一种情况下,你可以使用域的位置而不是域的名称来指定该域。Values是该域的新值。如果你指定了多个域,则该值也是一个值的数组。
UpdateBatch [AffectRecords]
在批修改模式下保存任何新添加的记录和对记录集内记录所做的任何修改。AffectRecords指明该方法会影响到的记录。它可以是下面的表格内三个常数的任意一个。
常数 |
描述 |
adAffectCurrent |
只影响当前记录。 |
adAffectGroup |
影响所有满足Filter属性设定的记录。 |
adAffectAll |
影响所有在记录集内的记录(缺省值)。 |
属性
AbsolutePage
当一个记录集分成多个页时,返回当前页的号码或者移动到一个新页。对于该属性,你可以使用下表所示的几个常数之一。
常数 |
描述 |
adPosUnknown |
指明当前记录集为空,该页的号码未知,或者记录集不支持AbsolutePage属性。 |
adPosBOF |
属性BOF的值为TRUE。 |
adPosEOF |
属性EOF的值为TRUE。 |
AbsolutePosition
在记录集内当前记录的绝对位置。返回一个数字来代表当前记录的绝对位置,或者移动到一个指定绝对位置的记录。在该属性中,你可以使用下表所示的常数:
常数 |
描述 |
adPosUnknown |
指明当前记录集为空,该页的号码未知,或者记录集不支持AbsolutePage属性。 |
adPosBOF |
属性BOF的值为TRUE。 |
adPosEOF |
属性EOF的值为TRUE。 |
ActiveConnection
指明连接字符串或Connection对象的名称。当记录集已经被打开或者记录集的source属性为一个Command对象时,该属性只可读。否则,在设定该属性时会创建一个新的连接。
BOF
如果当前记录的位置位于记录集第一条记录之前时,返回值TRUE。否则返回值FALSE。
Bookmark
当读取该属性时,它返回一个标志当前记录的书签。当该属性设置成书签时,当前记录变成由书签标志的记录。
CacheSize
指明保存在本机内存缓冲区内记录集内记录的数目。对于一个只能向前移动的游标,缺省值为1。对于所有其它类型的游标,缺省值为10。
CursorLocation
指明使用哪种类型的游标库。该属性具有如下表格所示的值:
常数 |
描述 |
adUseClient |
使用客户端游标。 |
adUseServer |
使用服务器或驱动器游标(缺省值)。 |
CursorType
可以是下表所示常数的任一个。
常数 |
描述 |
adOpenForwardOnly |
只允许在记录集内的记录间往前移动。(缺省值) |
adOpenKeyset |
反映由其它用户所做的对记录的改变或删除动作。然而并不反映由其它用户所做的添加新记录动作。 |
adOpenDynamic |
反映由其它用户所做的对记录的改变或删除动作。包括新添加的记录。 |
adOpenStatic |
不反映其它用户对记录所做的修改,删除或添加动作。 |
EditMode
返回一个指明当前记录的编辑状态的常数(见下表)。
常数 |
描述 |
adEditNone |
没有对当前记录进行修改。 |
adEditInProgress |
当前记录已经被编辑了,但还没有被保存。 |
adEditAdd |
调用了方法AddNew。 |
EOF
如果当前的记录位置位于记录集的最后一个记录之后,返回值TRUE。否则返回值FALSE。
Filter
为在记录集内的数据指明一个过滤器。你可以使用一个条件字符串,书签数组或者下表内的某个常数来创建一个过滤器。
常数 |
描述 |
adFilterNone |
删除当前的过滤器。 |
adFilterPendingRecords |
仅仅在批修改模式下使用,用于观看已经被改变但还没有发送到服务器上的记录。 |
adFilterAffectedRecords |
被最近一次Delete,Resync,UpdateBatch,或者CancelBatch方法调用所影响到记录的过滤器。 |
adFilterFetchedRecords |
最近一次从数据库返回记录的过滤器(在当前缓存内的记录)。 |
LockType
指明当数据提供者在打开记录集时所使用的锁定类型。你可以使用下表所示常数的任意一个。
常数 |
描述 |
adLockReadOnly |
数据不能改变(缺省值)。 |
adLockPessimistic |
一般地,数据提供者在你一旦开始编辑数据时就锁定记录。 |
adLockOptimistic |
仅当Update方法被调用时,数据提供者锁定记录。 |
adLockBatchOptimistic |
用于批处理修改。 |
MarshalOptions
指明被重新返回到服务器的记录。在该属性内,可以使用下表所示的两个常数之一。
常数 |
描述 |
adMarshalAll |
所有记录都返回到服务器(缺省值)。 |
adMarshalModifiedOnly |
只有被修改的记录返回到服务器。 |
MaxRecords
指明当打开一个记录集时,要返回记录的数目。缺省值为0,指明所有的记录都必须返回。
PageCount
当该记录集分成多个页时,返回在记录集内记录的页数。
PageSize
指明包含在一个单独的页内记录的数目。用于把在记录集内的记录分成逻辑页。
RecordCount
返回在记录集内记录的数目。值-1说明记录的数目没法确定。
Source
Command对象的名称,一个SQL语句,一个表的名称,或者一个存储过程。用于指明记录集的数据源。
State
返回对象RecordSet的当前状态。该属性具有下表所示的值。
常数 |
描述 |
adStateClosed |
该对象已经关闭。 |
adStateOpen |
该对象已经打开。 |
Status
当使用批修改时,返回当前记录的状态。返回值可以是下表所示常数的一个或几个。
常数 |
描述 |
adRecOK |
该记录被成功修改。 |
adRecNew |
该记录是新的。 |
adRecModified |
记录被修改了。 |
adRecDeleted |
记录被删除了。 |
adRecUnmodified |
记录没有被修改。 |
adRecInvalid |
由于存在一个不合法的书签所以记录没有保存。 |
adRecMultipleChanges |
记录没有被保存因为这样会影响不止一条记录。 |
adRecPendingChanges |
记录没有被保存因为它指向一个悬而未决的插入。 |
adRecCanceled |
记录没有被保存因为该操作被取消了。 |
adRecCantRelease |
记录没有被保存因为记录被锁定。 |
adRecConcurrencyViolation |
记录没有被保存因为正在使用优化同步。 |
adRecIntegrityViolation |
记录没有被保存因为用户违反了整体性限制。 |
AdRecMaxChangesExceeded |
记录没有被保存因为存在太多的潜在修改。 |
AdRecObjectOpen |
记录没有被保存因为和一个打开的存储对象冲突。 |
AdRecOutOfMemory |
记录没有被保存因为计算机内存资源不够。 |
AdRecPermissionDenied |
记录没有被保存因为用户没有足够的权限。 |
AdRecSchemaViolation |
记录没有被保存因为它会违反正在使用的数据库的结构。 |
AdRecDBDeleted |
记录已经在数据源内被删除了。 |