sql >> Databáze >  >> RDS >> Sqlserver

Vlastnost VB6 ADODB.Recordset RecordCount vždy vrátí hodnotu -1

Ve skutečnosti CursorLocation hraje v tomto případě hlavní roli. Použijte rs.CursorLocation = adUseClient nastavte umístění kurzoru a zkuste to.

    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. Dělená tabulka Oracle

  2. Jak mohu svázat ArrayList s PreparedStatement v Oracle?

  3. Problém s npgsql v aplikaci c# - Stávající připojení bylo násilně uzavřeno vzdáleným hostitelem

  4. SQL Server:ekvivalent kaskády drop tabulky?