1

我网站中最简单的组件之一只是一天到一天停止工作,代码没有任何更改。

'Connection Declaration as connection
Set rs = Server.CreateObject ("ADODB.Recordset")
rs.Open "SELECT * FROM tablename ORDER BY id DESC", connection, 1, 3
while not rs.EOF
  'writing some Table from the records in DB
  'Simplified Code %>
  <tr><td><%=rs("id")%></td><td><%=rs("description")&></td></tr>
  <%
  rs.MoveNext
Wend

在我的数据库中,我已经验证了异常数量的 30 条记录:(

执行上述代码时,我看到其中 2 个

这告诉我两件事,

第一:表名正确并建立与数据库的连接
第二:表生成本身是正确的

我还有一个较小的测试系统。示例数据库上的完全相同的代码会产生预期的结果。

不幸的是,我无法“即时访问”我的主页以进行“调试”

ADODB 记录集丢失记录是否有任何已知的错误?请记住,代码完全相同并且“无错误”工作。

4

1 回答 1

1

几点建议。

如果尚未使用 Option Explicit - (我在您的代码中没有看到它)这将显示 SQL 错误,因此可能会有所帮助。

检查您是否没有破坏 RS。

此外,“connection, 1, 3”表示“活动连接”、“cursortype”、“locktype”

您的 cursortype 是 'adOpenKeySet' - 3 或 'adOpenStatic' 更好,除非您特别想要 KeySet?尝试以这种方式调用 Open 以强制使用默认值(奇怪的是分别为 3 和 1!):

RS.Open "SELECT * FROM tablename ORDER BY id DESC",connection 

我通常也像这样编写 RS 输出循环:

If Not RS.BOF Then
   ' write table tag HTML
   Do While Not RS.EOF
      ' write table row + row data
      RS.MoveNext
   Loop
   ' write end table tag HTML
Else
   ' write "RS is empty!"
End If

这将更容易判断记录集是否为空。

于 2013-06-09T19:51:08.537 回答