Sql erklärung



  • Hallo,

    Ich bin ein Neuling in C++ von daher sorry für meine Fragen.
    Leider ist unser Lehrer nicht im Stande uns den Quelltext genauer zu erklären (wahrscheinlich mangels Zeit).

    Kann mir jemand sagen was die folgenden Zeilen genau bedeuten. Vielmehr was für Datentypen werden hier verwendet? Was hier ist Objekt und was ist Klasse?

    [cpp]
    Connection con("dbweber",host, user,passwd);
    Query query = con.query();

    query << "select ID,Name,Vorname from person";

    Result res = query.store();

    Ich bin dankbar für jede nähere Erklärung.

    Mfg Christian



  • datentypen sehe ich hier:
    Connection
    Query
    Result

    dementsprechende objekte:
    con (instanz von Connection)

    query (instanz von Query)

    rest(instanz von Result)

    an dieser stelle
    Connection con("dbweber",host, user,passwd);
    übergibst du dem konstruktor von Connection vier argumente.

    na ja, schau dir die klasse Connection einfach mal an. (such den header 🙂 )



  • Auch ziemlich elegant ist die Sache Mit dem Query Object ...

    Query query = con.query();
    Das Connection Object kann Querie-Objecte erzeugen ...
    Query Objecte haben nen Copy-CTor und Zuweisungsoperator. (sonst wuerde obige Anweisung ned funzen)
    und fuehren Intern sicher nen Verweis auf die connection, auf welche die Ausgefuehrt werden sollen ... So das ein query.store(); nun ohne angabe der Conection ausgefuehrt werden kann.
    weiterhin bemerkenswert ist, das Query sich wie ein stringstream verhaelt, wo man schoen scheibchenweisse seine moeglicherweise sehr lange SQL-Abfrage reintun kann, ohne selber zwischenspeichern zu muessen ...

    Ich nehm mal an, das ist nen besipiel fuer die Benutzung des mysql++ Wrappers, sieht zumindest so aus ...

    Ciao



  • Danke für eure schnellen Antworten!

    So ganz verstehe ich es zwar immer noch nicht aber ich denke das es mich etwas weiter bringt. Meine C++ Kenntnisse sind wahrscheinlich noch zu gering um alles zu verstehen. Muss noch ein bischen googeln!

    MfG
    Chris


Anmelden zum Antworten