CRecordSet, RFX, DoFieldExchange ( Oracle )



  • Hallo,

    hoffentlich eine nicht zu triviale Frage.

    Ich habe eine funktionierende Klasse, die CRecordset benutzt und triviale
    Datenbankoperationen auf einer Oracletabelle macht. Ich habe jetzt folgendes
    Problem; der Kunde fügt in seiner Tabelle weitere Felder ein ( u.a. auch dazwischen );
    und schon funktioniert meine ganze schöne Klasse nicht mehr.

    Wenn ich die Dokumentation richtig verstanden habe, müssen die einzelnen RFX_Date,
    RFX_Text Aufrufe usw. der Reihenfolge der Spalten in der Oracletabelle entsprechen -
    würde ja erklären, wieso das jetzt nicht mehr klappt ( wäre zuerst die Frage, ob dem wirklich so ist ).

    Wenn dem so ist, stellt sich für mich die Frage, ob man die Funktion
    DoFieldExchange nicht "dynamischer" programmieren kann, zumal ich auch
    nur wenige von den Spalten für meine Anwendung brauche.

    bin für jeden Tip dankbar, eventuell sehe ich auch
    den Wald vor lauter Bäumen nicht.

    tschüss Dieter



  • versuch mal m_pSet->requery();



  • Soviel ich weiss ist die Reihenfolge der Felder in der RecordSet-Klasse normalerweise egal. Bei mir kommt es nur ganz, ganz selten vor, dass eine RecordSet-Klasse nicht mehr funktioniert, wenn man eine Tabelle vergrössert und die RecordSet-Klasse nicht anpasst.

    Voraussetzung dafür:
    wenn die Klasse sowas wie ein INSERT oder UPDATE enthält, müssen dort alle entsprechenden Felder extra aufgezählt sein.
    D.h. ein
    INSERT INTO TABELLE VALUES('eins','zwei','drei');
    funktioniert i.d.R. nach Tabellenänderungen nicht mehr, ein
    INSERT INTO TABELLE(FELD1,FELD2,FELD3) VALUES('eins','zwei','drei');
    dagegen schon.


Anmelden zum Antworten