wo lässt der BCB nach einem TQuery meine Ergebnismenge?



  • Hallöchen,

    erstmal muss ich (wie immer) betonen, dass ich von C++ so gut wie keinen Plan habe. Im letzten Jahr habe ich mich ausschließlich mit PHP beschäftigen müssen. Nun ja hier im Praktikum soll ich nun mit 2 Datenbanken arbeiten... nun ja was heißt 2 Datenbanken... eigentlich ist es eine Oracle DB, die je nach angemeldetem Benutzer eine andere "Pseudo Datenbank" zur Verfügung stellt (ich garantiere nicht für eine richtige Interpretation dieser Technik meinerseits).

    Nun das Problem liegt eh woanders...

    if(!DataModule1->Haltestellen->Active){DataModule1->Haltestellen->Active = true;}
    if(!DataModule1->Verkehrsmittel->Active){DataModule1->Verkehrsmittel->Active = true;}
    if(!DataModule1->Linien->Active){DataModule1->Linien->Active = true;}
    if(!DataModule1->Linienwege->Active){DataModule1->Linienwege->Active = true;}
    if(!DataModule1->Orte->Active){DataModule1->Orte->Active = true;}
    

    Wie man unschwer erkennen kann baue ich hier erfolgreich im Verlauf des Progs ne Verbindung auf. das if(...) lasse ich im Endprodukt dann weg.

    DataModule1->Query2->SQL->Add("SELECT * FROM Haltestellen where Name == 'Neue Mitte'");
    DataModule1->Query2->Prepare();
    DataModule1->Query2->ExecSQL();
    

    Und da verließen sie ihn...

    Ich bins von PHP gewohnt, dass ich jetzt eigentlich "moep=mysql_query(moep = mysql\_query(string)" und "moep=mysql_fetcharray(moep = mysql\_fetch_array(moep);" schreiben müsste um lesbare Datensätze zu kriegen.

    Aber erstmal - wie übergebe ich ein SQL Query so, dass mir auch die Ergebnismenge in ein Array geschrieben wird? und muss ich danach auch fetchen so wie bei PHP?



  • Hallo

    schau die in der BCB-Hilfe die Methode TQuery::Open() an, vor allem den Unterschied dieser zu TQuery::ExecSQL()

    bis bald
    akari



  • Hallo,

    Mach mal Open() statt ExecSQL() dann hast du in Fields auch deine Ergebnismenge.



  • Hallo nochmal!

    danke für eure schnelle Antwort! Das ist ein Zeichen dafür dass dieses Forum im Vergleich zu denen, die mir (wenn überhaupt) auf die gleiche Frage eher Antworten gaben, die mich noch mehr verwirrt haben *lach*...

    Also ich hab mir ExecSQL angesehen und ... ok... damit hab ich auf jeden Fall das Tor weit verfehlt ^^

    nun mit

    DataModule1->Query2->Open();
    DataModule1->Query2->Fields->...
    

    bekomme ich eine weitere Auswahl an Funktionen (fast alle void). Im ersten Ansatz habe ich (zu einfach gedacht) versucht

    DataModule1->Query2->Fields;

    nem char (ohne genaue größenangabe - gewohnt von PHP) zuzuweisen... mkay das ging natürlich nicht.

    seid mir nicht böse aber ich hab überhaupt keine Ahnung wie ich jetzt aus Fields was raushole...

    Könnt ihr mir da eventuell mit einem Beispiel nen weiteren Lichtblick geben?


  • Mod

    Hallo

    zB

    Query->FieldByName("FELDNAME")->AsString
    

    Mfg
    Klaus



  • Hallo

    du solltest dir unbedingt erstmal die mitgelieferten Beispiel unter <BCB_Path>\Examples\DBTasks anschauen.

    bis bald
    akari



  • vielen Dank für eure Geduld und die Ratschläge! 🙂
    es funktioniert jetzt aber ich werde dennoch akari's Rat folgen und mich morgen mit den Beispielen des BCB auseinandersetzen - und jetzt mach ich Feierabend, mein Kopf kommt sonst noch auf die Idee nen explode mit dem zwischenraum jeder Hirnzelle als seperator zu machen... ^^

    machts gut und einen schönen Abend noch!


Anmelden zum Antworten