none
RDO in VB6 mit SQL Server 2008 RRS feed

  • Frage

  • Hallo,

    ich habe eine VB6 Anwendung, welche mittels RDO auf einen SQL Server 7 zugreift und seit Jahren im Einsatz ist. Ich muß auf die Datenbank SQL Server 2008 wechseln. Der Migrationspfad dazu führt über den SQL Server 2005. Das heißt, ich habe die Datenbank "detach"scht und auf einen SQL Server 2005 "attach"scht. Danach ein erneuter Detach unter dem SQL Server 2005 und ein Attach auf dem SQL Server 2008. Die Migration der Datenbank hat einwandfrei geklappt, und ich kann z.B. mit dem Microsoft SQL Managment Studio ohne Probleme zugreifen und arbeiten. Auch die ODBC Verbindung funktioniert, aber der Zugriff aus dem VB6 Programm gibt Probleme. Bei der VB6 Anmeldung kommt es zu keinem Fehler, aber wenn ich ein Resultset öffen will, so bekomme ich den Fehler

    37000: [Microsoft][ODBC SQL Server Driver][SQL Server]The cursor was not declared.

    Dasselbe funktioniert jedoch mit dem SQL Server 7 und auch dem SQL Server 2005 einwandfrei.

     

    Hat vielleicht jemand eine Idee ?

     

    Danke im Voraus und Grüße aus Südtirol

    Karl

     

    Montag, 21. Juni 2010 18:12

Antworten

  • Hallo Karl,

    Du weist schon, das RDO doch etwas sehr in die Jahre gekommen ist und das danach es noch DAO und ADO gab (ADO, DAO and RDO in Visual Basic)?

    Ich musste auch erst mal nachsehen, wie es mit RDO ging; wenn ich aber den folgenden Code mit einem SQL Server 2008 als Datenquelle laufen lassen, funktioniert der Zugriff soweit. Da müssten wir etwas mehr von Deinem Code kennen, bei dem der Fehler auftritt.

    Public Sub Test()

        Dim re As rdoEnvironment

        Dim db As rdoConnection

        Dim rs As rdoResultset

        Dim strSQL As String

       

        strSQL = "Select * from Person.Address"

       

        Set re = rdoEngine.rdoEnvironments(0)

        Set db = re.OpenConnection("SqlTest")

       

        Set rs = db.OpenResultset(strSQL, rdOpenKeyset, rdConcurReadOnly, rdExecDirect)

              

        rs.MoveLast

        Debug.Print rs.RowCount

       

        db.Close

        re.Close

       

    End Sub

     


    Olaf Helper ----------- * cogito ergo sum * errare humanum est * quote erat demonstrandum * Wenn ich denke, ist das ein Fehler und das beweise ich täglich http://olafhelper.over-blog.de
    Dienstag, 22. Juni 2010 09:18