VB6 ADODB.Recordset RecordCount-Eigenschaft gibt immer -1

Ich versuche, einige alte VB6-code für die Arbeit mit SQL Server Compact.

Kann ich eine Verbindung herstellen, öffnen Sie die Datenbank und alles scheint gut. Ich kann laufen, insert-select-Befehle die Arbeit.

Jedoch der ADODB.Recordset RecordCount-Eigenschaft gibt immer -1, auch wenn ich auf die Felder und die Daten sehen. Ändern Sie die CursorLocation = adUseClient führt zu einem problem, wenn executung SQL (multiple-step operation generated errors).

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

Jede Beratung wäre dankbar angenommen.

InformationsquelleAutor Belliez | 2010-02-17
Schreibe einen Kommentar