Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Właściwość VB6 ADODB.Recordset RecordCount zawsze zwraca -1

Właściwie CursorLocation odgrywa w tym przypadku główną rolę. Użyj rs.CursorLocation = adUseClient ustawić położenie kursora i spróbować.

    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. T-SQL:cyklicznie pokazuj procedury składowane związane z tabelami

  2. Zmiana sortowania bazy danych SQL Server

  3. Wyłącz wszystkie indeksy nieklastrowane

  4. Wstaw ręcznie do tabeli za pomocą instrukcji SQL, ale klucz jest automatycznie zwiększany

  5. Co to jest protokół TDS w wersji 8.0 i dlaczego powinienem go używać?