d或connection对象上打开一个recordset,调用语法为:rstname.open [varsource [, varactiveconnection [, lngcursortype [, lnglocktype [, lngoptions]]]]]。这些参数都是可选的, requery 重新从表中获取recordset的内容,等效于close后再open。它是一个资源集中型操作。语法为:rstname.requery resync* 重新从表中获取部分recordset内容。调用语法为rstname.resync [lngaffectrecords],其中lngaffectrecords的取值见lngaffectrecords用到的常数。如果把该参数设为adaffectcurrent或adaffectgroup,则比adaffectall(默认值)所耗的资源要少。 save 创建包含recordset永久性拷贝的文件。调用语法为rstname.save strfilename。其中strfilename为路径和文件名。通常用.rst作为文件的扩展名。 supports 如果数据提供者支持指定的游标相关的方法,则返回true,否则返回为false。调用语法为supported=rstname.supports (lngcursoroptions).关于lngcursoroptions,见supports方法用到的常数。 update* 使对recordset的修改对底层数据源中的表生效。对于批量操作,update方法只使修改对本地(cached)recordset生效。调用语法为rstname.update updatebatch* 合对指量类型的recordset(locktype属性值为adbatchoptimistic,cursortype属性值为adopenkeyset或adopenstatic)所做的修改对底层数据源中的表生效。调用语法为rstname.updatebatch [lngaffectrecords],其中lngaffectrecords的取值见lngaffectrecords用到的常数。 注:adodb.recordset对象不支持edit方法。为了改变adodb.recordset对象当前记录的一个或多个字段的值,可以先使用rstname.fields(n).value=varvalue把相应字段的值改为所需要的值,而后执行rstname.update即可。 事件 事件名称 触发时机 endofrecordset 记录指针试图移到最后一条记录之外时 fieldchangecomplete 字段值的改变完成之后 movecomplete move或move...方法执行之后 recordschangecomplete 对单个记录编辑完成以后 recordsetchangecomplete 缓存中的改变对底层表生效之后 willchangfield 对字段值改变之前 willchangerecord 对单个记录改变之前 willchangerecordset 缓存中的改变对底层表生效之前 willmove move或move...方法执行之前 注:事件处理模块的函数头几乎都用到了adreason参数。该参数的取值见adreason参数用到的常数。 常数 absolutepage属性用到的常数 常数 含义 adposunknown 数据提供者不支持页面,recordset为空,或数据提供者不能确定页码。 adposbof 记录指针定位于文件开头(bof属性值为true) adposeof 记录指针定位于文件结尾(eof属性值为true) cursorlocation属性用到的常数 常数 含义 aduseclient 使用客户端游标库提供的游标。adodb.recordset要求客户端游标 aduseserver 使用数据源提供的游标,通常(但非绝对)位于服务器上(默认值) cursortype属性用到的常数 常数 含义 adopenforwardonly 提供单向移动游标和只读recordset(默认值) adopendynamic 提供可滚动游标,可显示其他用户对recordset所做的改动(包括添加新记录) adopenkeyset 提供可滚动游标,只隐藏其他用户所做的改动,类似于dynaset类型的dao.recordset adopenstatic 提供一个位于recordset静态拷贝上的可滚动游标,类似于snapshot类型的dao.recordset,但多了可更新特性 editmode属性用到的常数 常数 含义 adeditnone 无正在进行的编辑操作(默认值) adeditadd 临时添加一条记录,但尚未存入数据库的表中 adeditinprogress 当前记录中的数据已经改动,但尚未存入数据库的表中 filter属性用到的常数 常数 含义 adfilternone 除去已有的过滤器,显示recordset中的所有记录(等效于把filter属性置为空串,默认值) adfilteraffectedrecords 只显示上次cancelbatch、delete、resync或updatebatch方法执行后所影响的记录 adfilterfetchedrecords 只当前cache中的记录,记录条数由cachesize来确定 adfilterpendingrecords 只显示已改动但尚未被数据源处理的记录(仅适用于批量更新模式) locktype属性用到的常数 常数 含义 adlockrecordonly 指定只读访问(默认值) adlockbatchoptimistic 使用批量更新模式而不是默认的立即更新模式 adlockoptimistic 使用乐观锁(仅在更新过程中才锁定记录或页面) adlockpessimistic 使用悲观锁(编辑或更新整个过程中均锁定记录或页面) state常数 常数 含义 adstateclosed connection(或其他对象)是关闭的(默认值) adstateconnecting 正在连接数据源的状态 adstateexecuting connection或command对象的execute方法已被调用 adstatefetching 返回行(row)到recordset对象 adstateopen connection(或其他对象)是打开的(活动的) status属性用到的常数(仅适用于batch或bulk recordset操作) 常数 含义 adrecok 成功更新 adrecnew 成功添加 adrecmodified 成功修改 adrecdeleted 成功删除 adrecunmodified 无改动 adrecinvalid 未保存:bookmark属性无效 adrecmultiplechanges 未保存:保存会影响其他记录 adrecpendingchanges 未保存:记录引用了一个等待插入操作 adreccanceled 未保存:操作被取消 adreccantrelease 未保存:现有记录值阻止了保存 adrecconcurrencyviolation 未保存:乐观并发锁发生了问题 adrecintegrityviolation 未保存:操作会影响一致性 adrecmaxchangesexceeded 未保存:存在太多的等待改动 adrecobjectopen 未保存:打开存贮对象发生冲突 adrecoutofmemory 未保存:内存不足 adrecpermissiondenied 未保存:用户权限不够 adrecschemaviolation 未保存:记录的结构不符合数据库中的定义 adrecdbdeleted 未保存或删除:记录已被删除 lngaffectrecords参数用到的常数 command类型常数 含义 adaffectall 包括recordset对象的所有记录,那些被filter属性过滤隐藏的记录也计算在内(默认值) adaffectcurrent 只包括当前记录 adaffectgroup 只包括那些符合当前filter条件的记录 varstart参数用到的bookmark常数 常数 含义 adbookmarkcurrent 从当前记录开始(默认值) adbookmarkfirst 从第一条记录开始 adbookmarklast 从最后一条记录开始 supports方法用到的常数 常数 含义 adaddnew 调用addnew方法 adapproxposition 设置和得到absoluteposition和absolutepage属性值 adbookmark 设置和得到bookmark属性值 addelete 调用delete方法 adholdrecords 获取另外的记录或改变获取记录指针的位置,但不提交未确定的改变 admoveprevious 调用getrows,move,movefirst和moveprevious方法(表明是一个双向可滚动游标) adresync 调用resync方法 adupdate 调用update方法 adupdatebatch 调用updatebatch和cancelbatch方法 adreason参数用到的常数 常数 含义 adrsnaddnew 调用了addnew方法 adrsnclose 调用了close方法 adrsndelete 调用了delete方法 adrsnfirstchange 第一次对记录字段值做了修改 adrsnmove 调用了move方法 adrsnmovefirst 调用了movefirst方法 adrsnmovelast 调用了movelast方法 adrsnmoveprevious 调用了moveprevious方法 adrsnrequery 调用了requery方法 adrsnresync 调用了resync方法 adrsnundoaddnew addnew操作被用户取消 adrsnundodelete delete操作被用户取消 adrsnundoupdate update操作被用户取消 adrsnupdate 调用了update方法