移植到 MySQL-对 MYSQL 数据库使用 ASP Recordcount 的问题

作者:vkvi整理 来源:ITPOW(原创) 日期:2009-12-18

ASP 访问 MySQL 数据库时使用 rs.RecordCount 总是返回 -1。解决办法是设置 RecordSet 实例的 CursorLocation 的值为 3。

set rs = Server.CreateObject("ADODB.Recordset")
rs.CursorLocation = 3
rs.Open sql, conn

rs.CursorLocation = 3 就是 rs.CursorLocation = adUseClient,就是代表使用客户端光标,和他对应的是 rs.CursorLocation = adUseServer 服务端光标。

CursorLocation 属性

设置或返回游标服务的位置。

  • adUseNone 没有使用游标服务。(该常量已过时并且只为了向后兼容才出现)。值为 1。
  • adUseServer 默认值。使用数据提供者的或驱动程序提供的游标。这些游标有时非常灵活,对于其他用户对数据源所作的更改具有额外的敏感性。但是,Microsoft Client Cursor Provider(如已断开关联的记录集)的某些功能无法由服务器端游标模拟,通过该设置将无法使用这些功能。值为 2。
  • adUseClient 使用由本地游标库提供的客户端游标。本地游标服务通常允许使用的许多功能可能是驱动程序提供的游标无法使用的,因此使用该设置对于那些将要启用的功能是有好处的。AdUseClient 具有向后兼容性,也支持同义的 adUseClientBatch。值为 3。

说明

该属性允许在可用于提供者的各种游标库中进行选择。通常,可以选择使用客户端游标库或位于服务器上的某个游标库。

该属性设置仅对属性已经设置后才建立的连接有影响。更改 CursorLocation 属性不会影响现有的连接。

对于 Connection 或关闭的 Recordset 该属性为读 / 写,而对打开的 Recordset 该属性为只读。

由 Execute 方法返回的游标继承该设置。Recordset 将自动从与之关联的连接中继承该设置。

远程数据服务用法 当用于客户端 (ADOR) Recordset 或 Connection 对象时,只能将 CursorLocation 属性设置为 adUseClient。

相关文章