Mysql++ Initialisieren



  • Hallo,

    ich versuche mir einen eigene Klasse zum Datenbankhandling zu kreieren. Leider bekomme ich jedoch einen Fehler, den ich so nicht nachvollziehen kann. Dazu muss ich sagen, dass ich zwar schon c++ mit borland geschrieben habe - dies jedoch schon recht lange her ist. Also nicht wundern 🙂

    Folgendes Beispiel wird antandslos kompiliert und ausgeführt (auch schon zur datenbank verbindung aufgebaut):

    #include <mysql++.h>
    #include <Classes.hpp>
    #include <Controls.hpp>
    #include <StdCtrls.hpp>
    #include <Forms.hpp>
    #include <windows.h>
    
    class Datenbank {
    private:
    public:
    Datenbank(){
    bool connect(){
            Connection con(NULL);
            /*Anweisungen*/
            return true;
    }
    
    };
    

    Wenn ich nun aber "con" klassenweit verfügbar machen will, kompiliert er nicht:

    #include <mysql++.h>
    #include <Classes.hpp>
    #include <Controls.hpp>
    #include <StdCtrls.hpp>
    #include <Forms.hpp>
    #include <windows.h>
    
    class Datenbank {
    private:
    Connection con(NULL);
    public:
    Datenbank(){
    bool connect(){
              /*Anweisungen*/
              return true;
    }
    
    };
    

    Und ich verstehe einfach nicht warum. Hab es auch schon mit "new Connection" probiert. Ebenfalls in den Konstruktor. Aber alles funktioniert nicht. Bin ich da einem Denkfehler aufgesessen, oder einfach nur zu blöde?

    Übrigens die Fehlermeldung: "unresolved external _mysql_init"

    Hoffe mir kann jemand weiterhelfen...



  • Da du dein Code durch "/*Anweisungen*/" ersetzt hast kann ich nur eine
    Vermutung aufstellen:

    Ich denke mal das die Initalisierungroutine von SQL++ auf con zugreifen
    muß, das darf sie aber nicht da sie ausserhalb der Klasse liegt und con
    Privat ist.



  • Hmm, nee daran liegt es nicht.

    ich kann "Connection con(NULL);" nicht außerhalb der Funktion definieren. Ich würde es eben aber gerne im private Bereich definieren. Dann kommt folgender Fehler: ) Erwartet

    So will ich es, funktioniert aber nicht:

    class Datenbank {
    private:
    Connection con(NULL);
    public: 
    };
    

    in /*Anweisungen*/ wird nur connected und querys abgesetzt. Allerdings alles nur Klassen-Intern.


Anmelden zum Antworten