Während der Laufzeit die Anzahl der Felder in einem DBGrid ändern - Wie?



  • Hallo Zusammen,
    ich habe eine MySQL Datenbank und ein DBGrid. Bis jetzt habe ich es immer so gemacht, dass ich in der Query-Komponente z.B. folgendes als SQL Befehl eingetragen habe:

    Select * from Artikel

    Dann habe ich per Doppelklick auf die TDBGrid Komponente das Menü für die Felder aufgerufen und die Felder aus meiner Query eingefügt.

    Jetzt habe ich aber das Problem, dass ich während der Laufzeit die Query änder in dem ein Join enthalten ist. Dadurch habe ich ein Feld mehr das ich im TDBGrid anzeigen möchte. Wie kann ich das jetzt lösen? Wie kann ich das Feld noch ins Grid einfügen?

    Hoffe, es war verständlich was ich vor habe 🙂

    Danke im voraus.



  • Probier mal

    TColumn* clm = meinGrid->Columns->Add();
    clm->Field = meinQuery->FieldByName("meinneuesfeld");
    


  • Dann bekomme ich die Meldung

    Listenindex überschreitet das Maximum



  • Warum fügst Du die überhaupt hinzu? Braucht man doch gar nicht. 😉



  • Nehme alles zurück. Danke für deinen Tipp. Damit hat es funktioniert. Die Fehlermeldung beim Listindex kam durch was anderes.



  • Joe_M. schrieb:

    Warum fügst Du die überhaupt hinzu? Braucht man doch gar nicht. 😉

    Wieso brauche ich das nicht?



  • Weil grundsätzlich alle im Select entahltenen Felder im DBGrid angezeigt werden. Solange Du da nichts besonderes bei den Feldern einstellst, brauchst Du das also nicht.
    Ich hab diesen DBGrid-Feldeditor noch nie verwendet. Wenn dann habe ich zur Laufzeit gewünschte Dinge direkt in den Feldern aus der Query eingestellt (zB bestimmte Formatierungen bei Zahlen...).


Anmelden zum Antworten