Problem bei CRecordset-Aktualisierung



  • Benutze CDatabase und CRecordset um per ODBC auf eine MSSQL-Datenbank zuzugreifen. Mein CDatabase und mein CRecordset Objekt sind global deklariert. Wenn ich nun Einträge in die Datenbank mache, mach ich die mit einem Request an die Datenbank mit Hilfe der Methode CDatabase::ExecuteSQL()...
    Mein CRecordset ist für dynaset eingestellt. Jetzt habe ich das Problem, wenn ich einen INSERT-Request an die DB schicke, wird der Datensatz in der Datenbank eingetragen, jedoch mein Recordset nicht aktualisiert. Ich würde gerne auf die Methoden AddNew(), Delete(), ... usw. verzichten und alles über ExecuteSQL() machen...

    Ich könnte natürlich auch immer nur ein lokales, temporäres CRecordset Objekt erstellen.. Jedoch müsste ich mir vorher den Datensatz merken, auf welcher der Cursor gezeigt hat (z.B. Datensätze zählen). Problem: Beim neu setzen des Cursors, auf den gezählten Datensatz kann falsch sein. Da mehrere Benutzer auf die DB zugreifen können in der Zwischenzeit ja Datensätze gelöscht worden sein.

    Hat jemand einen Tip für mich, wie ich das am besten machen könnte???

    Danke für eure Hilfe
    Gruß Lutz



  • Du musst noch ein Requery machen, das liest neu ein.
    Und nicht zählen... du musst doch ne ID in der Tabelle haben, oder? Die merkst du dir und läufst dann wieder bis zu der Zeile hin.



  • Hatte ich schon probiert mit requery()... Hatte aber nicht funktioniert..
    Mit der id stimmt schon... wär bei vielen records aber bestimmt zeitaufwändig, die sätze zu durchlaufen..

    Werd es heut Abend noch mal mit Requery() probieren..
    Dank dir...

    Gruß Lutz



  • Hab es mit der requery methode versucht... Das klappt soweit... warum stimmen jedoch die informationen über den status des recordsets nicht mehr? diese werden über die methode crecordset::getstatus() in einem crecordsetstatus-objekt gespeichert.danke

    gruß lutz


Anmelden zum Antworten