ADO Recordset对象的RecordCount属性总是-1.docxVIP

ADO Recordset对象的RecordCount属性总是-1.docx

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ADO Recordset对象的RecordCount属性总是-1

ADO Recordset对象的RecordCount属性总是-1?收藏?????? 最近在用asp做网页后台时,遇到了一个烦人的问题,RecordSet对象的RecordCount和PageCount均为-1.不能直接获取RecordCount属性,我就想了其他的笨办法代替,比如,利用了SQL的集函数select Count(*) as count from table,这样count中就存储了RecordSet的属性值;或者,利用一个变量存储,在游标从头到尾的搜索过程中,这个变量逐次加一,最终就得到了该属性:% dim ii=0set rs=conn.Open select * from table do while not rs.EOF i=i+1rs.MoveNextLoop%?? 可是,接下来要用到PageCount属性来实现分页(AbsolutePage:指定当前页;PageCount:返回记录集中的逻辑页数;PageSize:指定一个逻辑页中的记录个数,缺省值是10.)这种方法行不通了,没办法,就开始到处搜集信息:?? 首先让我们来看看怎么样获得记录集RecordSet,有以下几种:%set conn = Server.CreateObject(ADODB.Connection)set rs = conn.Open(sqlstring)%另外一种方式:% set conn = Server.CreateObject(ADODB.Connection)set cmd = Server.CreateObject(ADODB.Commend)cmd.ActiveConnect = conncmd.StringText = Select * from Tableset rs = cmd.Open conn? %而另外一种办法就是:% set rs = Server.CreateObject(ADODB.Recordset)rs.open sql,conn,打开方式,锁类型 %参数一表示游标类型,如下设置:参数1???????????? ?意??? 义0?只读,?? 数据只能向下移动1?可读写,数据可以自由移动,多用户下别人不能看到新增数据(除非重启动)2?可读写,数据可以自由移动,多用户下别人可以看到新增数据3?只读,数据可以自由移动参数2表示锁定类型,如下:参数2?????????? 意??? 义1?默认值,?? 只读2??????????????????? 悲观锁定3??????????????????? 乐观锁定4?????????????????? 批次乐观锁定也就是说第一个参数为1或2的时候,才能有recordcount?? 所以也可以用recordset.open打开数据源:?? rs.CursorLocation = adUseClient?? rs.CursorType = adOpenStatic ?? rs.open sqlstring,conn?? 在我的程序中,改为第二种打开方式就可以正确访问RecordSet的那些属性了.具体就是:rs.Open sqlstring,conn,1,3?? 那么CursorLocation和CursorType到底是什么东西,能产生这么大的影响?(1)CursorLocation:设置或返回游标引擎的位置, 可设置为以下某个常量的长整型值:adUseNone:?? 没有使用游标服务.(该常量已过时并且只为了向后兼容才出现)adUseClient:??? 使用由本地游标库提供的客户端游标。本地游标引擎通常允许使用的许多功能可能是驱动程序提供的游标无法使用的,因此使用该设置对于那些将要启用的功能是有好处的。adUseClientBatch 与 adUseClient 同义,也支持向后兼容性。到这里大家应该明白为什么我们的游标会出问题及解决办法了.adUseServer:??? 默认值。使用数据提供者或驱动程序提供的游标。这些游标有时非常灵活,对于其他用户对数据源所作的更改具有额外的敏感性。但是,Microsoft Client Cursor Provider(如已断开关联的记录集)的某些功能无法由服务器端游标模拟,通过该设置将无法使用这些功能。??? 注:当用于客户端(ADOR)RecordSet或Connection对象时,只能将CursorLocation属性设置为adUseClient.(2)CursorType:??? 指示在RecordSet对象中使用的游标类型,设置或返回以下某个CursorTypeEnum值:adOpenForwardOnly(=0):??? 仅向前游标,默认值.与静态游标相同,但只能在记录中向前滚动.当需要在记录集中单向移动时,可用于提

文档评论(0)

xxj1658888 + 关注
实名认证
文档贡献者

教师资格证持证人

该用户很懒,什么也没介绍

领域认证该用户于2024年04月12日上传了教师资格证

1亿VIP精品文档

相关文档