Datenbankzugriff mit CRecordset (und CDatabase) - Teil 1



  • Im MFC Forum meinten vor ein paar Tagen 2 Experten das CRecordset nicht zu empfehlen ist.



  • :o schrieb:

    Im MFC Forum meinten vor ein paar Tagen 2 Experten das CRecordset nicht zu empfehlen ist.

    Tja, wer was anderes kann, darf gerne darüber schreiben. 😉



  • Hallo, ich würde auch gerne eine Anwendung erstellen ohne CRecordview, aber wenn ich mit dem Klassenassistenten erstelle und am Ende statt Recordview eine andere View erstelle dann ist leider keine Set Klasse mehr vorhanden die von CRecordset abgeleitet wird.

    Wenn ich es nachträglich erstelle die Klasse funzt gar nicht´s mehr. gibt es eine Lösung?

    danke im Voraus.

    Mfg

    Özkan



  • Oka81 schrieb:

    Wenn ich es nachträglich erstelle die Klasse funzt gar nicht´s mehr. gibt es eine Lösung?

    Klar, aber stell die Frage bitte im MFC Forum, denn die Lösung könnte länger werden.

    Zuerst einmal solltest du "funzt gar nicht´s mehr" genauer erklären, bei mir geht es nämlich.



  • [quote="estartu"]

    Verwegener schrieb:

    Irgendwann nächstes Jahr.

    Dein nächstes Jahr ist bald zuende 😉 Wann kommt denn nun was???? *grins*

    Liebe Grüsse,

    Asmo



  • Momentan keine Chance. 😞
    Ich komme zu nix und zu dem Thema was ich gerne behandeln würde bin ich immer noch nicht schlauer: Dynamisch Tabellen anbinden.
    Sollte sich ein anderer Autor finden würde ich mich aber freuen.



  • Ich finde deinen -1 Hack für DB_NULL nicht gerade toll. Ich kann zwar verstehen, dass man mit der MFC zwangsweise in den Frickelmode schaltet, aber ich will trotzdem eine Alternative aufzeigen: boost::optional, das ist ein Wrapper um einen Typ welchen man überprüfen kann ob der gewrappte Typ sinnvoll initialisiert ist, d.h. man kann damit den NULL-Wert aus der DB sehr schön nachbilden im Programm 🙂



  • Könnte mir jemand sagen, wie ich in den ConnectionString eine vorher initialisierte Variable einfüge?

    Beispiel:

    CString CDemoSet::GetDefaultConnect()
    {
        return _T("DSN=Datenquelle;UID=Username;PWD=passwort;APP=Microsoft\x00ae Visual Studio .NET;WSID=PC-NAME;DATABASE=" + Datenbankname+ ";LANGUAGE=Deutsch");
    }
    

    Das klappt z.b. nicht. Auch mit & klappt es nicht. Danke schonmal im voraus!



  • Ich weiß nicht mehr ganz sicher, ob das hier klappt:

    CString CDemoSet::GetDefaultConnect()
    {
        return _T("DSN=Datenquelle;UID=Username;PWD=passwort;APP=Microsoft\x00ae Visual Studio .NET;WSID=PC-NAME;DATABASE=") + Datenbankname + _T(";LANGUAGE=Deutsch");
    }
    

    Ansonsten: halte den Connectionstring als CString vor und füge den Datenbanknamen mit der CString::Format-Methode ein



  • Vielen Dank! Mit der CString::Format-Methode funktioniert es 🙂


Anmelden zum Antworten