Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

VB6 ADODB.Recordset Свойството RecordCount винаги връща -1

Всъщност CursorLocation играе основна роля в случая. Използвайте rs.CursorLocation = adUseClient за да зададете местоположението на курсора и опитайте.

    Set rs = New ADODB.Recordset
    rs.CursorLocation = adUseClient
    Dim DbConnectionString As String

    DbConnectionString = mSqlProvider & _
                            mSqlHost


    Set mDbConnection = New ADODB.Connection
    mDbConnection.CursorLocation = adUseServer

    Call mDbConnection.Open(DbConnectionString)

    If mDbConnection.State = adStateOpen Then
        Debug.Print (" Database is open")
        ' Initialise the command object
        Set mCmd = New ADODB.Command
        mCmd.ActiveConnection = mDbConnection

        mCmd.CommandText = "select * from myTestTable"
        mCmd.CommandType = adCmdText

        Set rs = mCmd.Execute

        Debug.Print rs.RecordCount  ' This should now return the right value.
        Debug.Print rs.Fields(0)   ' returns correct data for first row, first col
        Debug.Print rs.Fields(1)   ' returns correct data for first row, 2nd col
        Debug.Print rs.Fields(2)   ' returns correct data for first row, 3rd col

    End If

End Sub


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. CONTAINSTABLE заместващ знак е неуспешен при съвпадение по фраза?

  2. Вътрешно свързване на три маси

  3. Предаване на списък към съхранена процедура на TSQL 2008

  4. Преименувайте някои таблици на име на таблица + ДДММГГГГ

  5. Преобразуването е неуспешно при преобразуване на стойността varchar „моята върната стойност“ към тип данни int