ASP技巧:RecordCount=-1解决方案
发表于:2007-06-30来源:作者:点击数:
标签:
现象 当在 服务器 端请求RecordCoun时会返回-1。这是因为ActiveXDataObjects(ADO)2.0中的CursorType是adOpenForwardonly或者adOpenDynamic。 如果是ADO1.5,只发生在cursortype是adOpenForwardonly的时候。如果使用OLEDBproviderforJET和 SQL Server产生的结
现象
当在
服务器端请求RecordCoun时会返回-1。这是因为ActiveX Data Objects (ADO) 2.0中的CursorType是adOpenForwardonly或者adOpenDynamic。
如果是ADO 1.5,只发生在cursortype是adOpenForwardonly的时候。如果使用OLEDB provider for JET和
SQL Server产生的结果可能不同,这依赖于
数据库的提供者。
提供者可能不支持某些CursorTypes。
当你选择的CursorType不被支持时,提供者将选择最接近于你所请求的CursorType。请参考你的提供者的文档。此外,请注意
不是所有的LockType和CursorType的组合都可以同时工作。改变LockType将强制改变CursorType。请确定使用调试来检查CursorType的值。
原因 在动态的游标中纪录号可能改变。Forwardonly的游标无法返回RecordCount。
解决办法 使用adOpenKeyset(=1)或者adOpenStatic(=3)作为服务器端游标或者客户端游标。客户端只使用adOpenStatic作为CursorTypes,而不管你选择什么样的CursorType。
状态 这个形式是设计决定的。
===============================================================================
链接文档帮助理解解决 有关rs.open sql,1,1中“1”和另外一个“1”的解释 rs.open sql,1,1也可以写成