【问题标题】:Current Recordset does not support bookmarks当前记录集不支持书签
【发布时间】:2014-01-27 11:39:11
【问题描述】:

我有这个将返回一组记录(记录集)的 ASP 经典代码:

adoRs.Open "EXEC SP_SelectFromTable", adocn, 1

它显然来自存储过程源。现在我使用AbsolutePage 属性进行分页功能,但它会导致错误:

错误类型:ADODB.Recordset (0x800A0CB3) 当前记录集没有 支持书签。这可能是提供者或 选定的光标类型。

但是当我将其更改为如下所示的简单选择语句时。它工作得很好。

adoRs.Open "SELECT * FROM tblSample", adocn, 1

我遗漏了什么概念?

【问题讨论】:

  • 也许你错过了一些概念......也许你知道游标类型,也许没有......看看这个关于游标类型的介绍:w3schools.com/ado/prop_rs_cursortype.asp(不要被愚弄通过网络应用程序中的“客户端光标类型”,客户端就是网络应用程序。
  • 您是否尝试过使用 ADO 命令对象?示例代码可以在这里找到:classical-asp.blogspot.co.il/2010/09/…

标签: sql asp-classic paging


【解决方案1】:

当我第一次开始在 ASP 中使用 ADO 时,我遇到了同样的问题。大多数易于查找的文档都提到设置记录集对象的游标类型。但是在我们的服务器上,我实际上必须在我的连接对象上设置它才能让它工作(从来没有真正弄清楚为什么)。

所以在我的应用程序中,我将它设置在我的连接对象上,如下所示:

adocn.CursorLocation = adUseClient

然后我可以将我的记录集设置为:

adoRs.CursorType = adOpenStatic

【讨论】:

  • 工作得很好,但我没有使用 adUseClientadOpenStatic,而是分别使用 3 和 3 作为它们的对应部分,因为我会导致“变量未定义”错误。谢谢!
  • 非常欢迎。这是关于使用命名常量而不是数值的附加花絮:4guysfromrolla.com/webtech/faq/Beginner/faq7.shtml
  • @Stuart 您收到变量未定义错误,因为您没有使用分别创建命名常量“adUseClient”和“adOpenStatic”的文档。因此,在您的情况下,是的,您需要使用常量值而不是名称。您可以从以下 URL 获取该文档,只需将其保存到一个文档(在此示例中,他们将其命名为 ADOVBS.inc)并将其#INCLUDE 到您的项目中。然后,如果愿意,您可以使用常量名称 (4guysfromrolla.com/webtech/faq/Beginner/faq7.shtml)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-03-16
  • 1970-01-01
  • 1970-01-01
  • 2012-02-04
  • 2019-08-20
  • 1970-01-01
  • 2012-07-24
相关资源
最近更新 更多