C++ und mySQL



  • MySQL und C++
    Hallo,

    ich möchte meinem Datenbankbefehl in C++ eine Variable 'name' übergeben.
    Wie funktioniert das?

    //Variablen deklarieren
    char name[20] = "haus";
    
    mysql_server_init(argc, argv, (char **)server_groups);
    
    two = db_connect("NULL"); 
    
    db_do_query(two, "show databases");
    db_do_query(two, "create database ?Variable? ");
    

    Gruß
    Matthias



  • Du musst die Zeichenkette vorher entsprechend bearbeiten:

    #include <string>
    using namespace std;
    
    ...
    
    string sql ("create database");
    
    sql += " ";
    sql += name;
    
    db_do_querry (sql.c_str ());
    

    Die Stringklasse aus der Bibliothek ist dafür ziemlich praktisch 🙂

    /Typo



  • Hallo,

    danke, hat super geklappt.

    Wie funzt das eigentlich mit CString?

    CString sql ("create database");
    
    sql += " ";
    sql += name;
    
    db_do_querry (sql.c_CStr ());
    

    geht das so?

    Gruß
    Frostie



  • In Standard-C++ gibt es kein CString.



  • für CString benötigst du keine Funktion um an die Zeichenkette zu kommen bzw.
    an einen const char * auf den String, dies geschieht dort implizit, schreibe
    einfach
    db_do_querry (str); // bei CString



  • Also so:

    #include <string>
    using namespace std;
    
    ...
    CString sql ("create database");
    
    sql += " ";
    sql += name;
    
    db_do_querry (str);
    

    Wie soll das gehen? Sollte ich nicht anstatt str sql in die Klammer setzen?

    Gruß
    Frostie



  • klar sollst du das, SirLant hat str stellvertretend für deinen Variablennamen genommen 😉 Aber CString gibt es in Standard C++ nicht, wie schon ein Vorredner gesagt hat.



  • Ich weiß, dass CString KEIN Standard C++

    hab nur nachgefragt, da ich in Standard C++ mit string
    und zusätzlich in MFC mit CString arbeiten muß.
    Ich wollte mir den Thread im MFC Forum sparen.

    Danke

    Gruß
    Frostie


Anmelden zum Antworten