1

我在 Visual Basic 6 上有下一个代码:

Static cmd As ADODB.Command
Static rs As ADODB.Recordset
If cmd Is Nothing Then
 Set rs = New ADODB.Recordset
 rs.ActiveConnection = conn
 Set cmd = New ADODB.Command
 cmd .ActiveConnection = conn
 cmd .CommandText = mySqlCommand
 cmd .Prepared = True
 AddParam cmd, "MyParam", myParam
End IF
SetParam cmd, "MyParam", myParam
rs.Open cmd, , adOpenForwardOnly, adLockReadOnly
While Not rs.EOF
 'Some code...
 '...
 rs.MoveNext
Wend
rs.Close

我完全确定我的命令有结果行。我尝试记录 sql 命令,然后将其复制粘贴到 sqltalk 中,它完全符合我的预期——它有一行。

但在我的 VB 中,我有 EOF 和 BOF 总是 = True。

为什么?以及如何解决这个问题?

4

2 回答 2

0
While (rsSource.eof = False) And (StopOrShoot = False)

  ' bookmark must have less value that recordcount for use the command .movenext 
  ' if have the same value and you use .movenext EOF gonna be TRUE and you can´t 
  ' read the last row.... 
  ' you try it ...

  If rsSource.RecordCount > rsSource.Bookmark Then
   rsSource.MoveNext   
  Else
    StopOrShoot = True
  End If
Wend

好看...

G. 哥斯达黎加的 Caseres

于 2014-03-21T22:05:56.503 回答
0

请检查记录集和连接对象的属性 cursorLocation。我希望这能解决你的问题。

于 2013-07-20T15:20:05.310 回答