Ergebnis von TQuery an DBGrid übergeben und/oder in Datei schreiben



  • Hi,

    bin mal wieder am basteln, und dabei leider wieder mal stecken geblieben.
    Ich habe eine Datenbank, die als .db Datei vorliegt. Diese Datenbank wird in einem DBGrid angezeigt. Nun möchte ich gerne verschiedene Sichten auf die Datenbank ermöglichen. Wird eine Sicht gewählt rufe ich ein TQuery mit dem entsprechenden SQL Statement auf. Funktioniert auch alles, aber wie weise ich jetzt das Ergebnis der Query dem DBGrid zu?

    Und noch ne andere Frage, wie kann ich einen Table den ich per SELECT zusammengebastelt in meine .db Datei schreiben? (Und dabei von mir aus auch den alten table überschreiben.)

    Viele Grüße,
    Alpha 🙂



  • Hallo

    Funktioniert auch alles, aber wie weise ich jetzt das Ergebnis der Query dem DBGrid zu?

    Indem du das DBGrid mit einer DataSource verbindest, die auf diese Query-Komponente mit dem Ergebnis zeigt.

    Und noch ne andere Frage, wie kann ich einen Table den ich per SELECT zusammengebastelt in meine .db Datei schreiben? (Und dabei von mir aus auch den alten table überschreiben.)

    Mit MySQL kannst du sows schreiben

    CREATE TABLE <TableName> SELECT ...
    

    Ob das bei Paradox auch geht, weiß ich aber nicht.
    Ansonsten alle bestehenden Datensätze in der Zieldatenbank löschen und die einzelnen Quell-Datensätze per INSERT eintragen

    bis bald
    akari



  • Moin

    akari schrieb:

    Indem du das DBGrid mit einer DataSource verbindest, die auf diese Query-Komponente mit dem Ergebnis zeigt.

    Hab ich versucht, und zwar so:

    1: Query1->Close();
    2: Query1->SQL->Clear();
    3: Query1->SQL->Add("SELECT DISTINCT (IP) FROM 'test.db';");
    4: Query1->Open();
    5: 
    6: DataSource2->DataSet = Query1;
    7: Table1->DataSource = DataSource2;
    8: Table1->Active = false;
    9: Table1->Active = true;
    

    Das wirft allerdings auf Zeile 7 die Fehlermeldung "E2247 Zugriff auf 'TDataSet::DataSource' nicht möglich".
    Jemand ne Idee, was ich da falsch mach?

    Viele Grüße
    Alpha



  • Ist Table1 ein DBGrid? Wenn ja, ist der Name sehr unglücklich gewählt und der Fehler unverständlich.
    Wenn Nein, ist alles klar und ein Blick in die Hilfe zu TTable wird Dir zeigen, warum Du darauf nicht zugreifen kannst.

    Gruß,

    Alexander



  • ?? Ein TTable ist ja auch kein TDBGrid...



  • Hallo

    du must von den DBGrid auf die DataSource zugreifen, nicht von der Table/Query aus.

    bis bald
    akari



  • Uuuuups! My fault 😞

    Ihr habt natürlich recht, Table1 ist mein TTable, nicht mein DBGrid.
    Knapp daneben und so 😉

    Danke, danke
    Alpha


Anmelden zum Antworten