in von CRecordset abgeleiteter Klasse dwOptions setzen



  • Guten Morgen,

    ich suche nach einer Möglichkeit in einer von CRecordset abgeleiteten Datenklasse (vom Klassenassistenten erzeugt), die dwOptions zu setzen

    Im Konstruktor klappt dies für den nOpenType

    //}}AFX_FIELD_INIT
    m_nDefaultType = dynaset;

    Ich möchte useBookmarks verwenden.

    Danke


  • Mod

    Welche dwOption meinst Du. Meinst Du m_dwOptions?

    Gefahrlos kann man das eigentlich nicht, warum auch. Man gibt es beim Open an und kann es eigentlich dann auch nicht mehr verändern, weil es die Art der Behandlung des Queries/Statements ändern würde.

    Intern gibt es die Funktion SetState in der das gemacht wird.
    Was willst Du denn ändern?



  • Ich möchte folgendes setzen:

    useBookmarks

    virtual BOOL Open(
    UINT nOpenType = AFX_DB_USE_DEFAULT_TYPE,
    LPCTSTR lpszSQL = NULL,
    DWORD dwOptions = none
    );

    dwOptions: CRecordset::useBookmarks

    Die kann man zwar beim rs.Open() setzen,
    aber das rs.Open() läuft intern in den MFC-Klassen (automatisch), wenn man eine DataSet-Klasse ableitet und in CRecordView nutzt.

    m_dwOptions

    habe ich schon versucht zu setzen, beim debuggen habe ich gesehen, dass dies wieder überschrieben wird.


  • Mod

    Open ist doch virtuell!



  • d.h., ich muss mein eigenes Open implementieren und am Ende dieser Implementierung wieder das Open von CRecordset aufrufen?


  • Mod

    Genau: Eine eigene CRecordset Klasse ableiten mit eigenem Open (gleiche Signatur)..


Anmelden zum Antworten