VB6 ADODB.Jeu d'enregistrements propriété RecordCount renvoie toujours -1

Je suis en train d'essayer d'obtenir quelques vieux VB6 code pour travailler avec SQL Server Compact.

Je peux me connecter, ouvrez la base de données et tout semble bien. Je peux courir insérer les commandes select qui travail.

Cependant le ADODB.Jeu d'enregistrements propriété RecordCount renvoie toujours -1 même si je ne peux accéder aux Champs et voir les données. La modification de la CursorLocation = adUseClient provoque un problème lorsque executung SQL (en plusieurs étapes opération a généré des erreurs).

Option Explicit
    Private Const mSqlProvider          As String = "Provider=Microsoft.SQLSERVER.CE.OLEDB.3.5;"
    Private Const mSqlHost              As String = "Data Source=C:\Database.sdf;"
    Private mCmd                        As ADODB.Command   ' For executing SQL
    Private mDbConnection               As ADODB.Connection


Private Sub Command1_Click()


   Dim rs As ADODB.Recordset

    Set rs = New ADODB.Recordset


    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  ' Always returns -1  !!
        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

Tout conseil serait acceptée avec reconnaissance.

OriginalL'auteur Belliez | 2010-02-17