![]() |
Datenbank: SQL • Zugriff über: SQL-Query mit ADO Komponente
Unabhängige Sql Abfrage?
Hallo,
ich möchte ein kleines Programm schreiben, wo sich der User selbst aussuchen kann, welche Spalte er anzeigen lassen möchte. Ich nutze dabei die ADO Query Komponenten und 5 Comboboxen wo der User max. 5 Spalten aussuchen kann. Der Befehl ADOQuery1.sql.add('select '+Combobox1.text+','+Combobox2.text+','+Combobox3. text .... usw. ist ja noch relativ einfach, allerdings ist es ja blöd, wenn der User nur 2 Spalten angezeigt haben möchte (da die anderen 3 Comboboxen ja keinen Text enthalten stimmt der syntax nicht mehr). Wie kann ich das nun am besten lösen, ohne 5 mal rießige IF schleifen zu machen: z.b. If combobox1.text <> '' then if combobox2.text <> '' then if combobox3.text <> '' then ... if combobox5.text <> '' then ADOQuery1.sql.add('select '+Combobox1.text+','+Combobox2.text+','+Combobox3. text .... usw. Gibt es keine "bessere" und schönere Methode das ganze flexibler zu gestalten ohne 5 große IF "schleifenblöcke"??? Danke für die Hilfe :) |
Re: Unabhängige Sql Abfrage?
Schleife über Array der Referenzen oder [].FindComponent()[/i]
|
Re: Unabhängige Sql Abfrage?
Hallo...
hätte da noch eine Idee... - alle möglichen Spalten in die Listen der ComboBoxen - auswertung über case ComboBox.ItemIndex of - ist ItemIndex => 0 fügst du dem SQL String die Spalte hinzu. - ist ItemIndex -1 ist ComboBox leer und du fügst dem SQL String '' hinzu. Nebeneffekt: der Nutzer kann sich im Prinzip auch die Reihenfolge der Spalten definieren.. ...bis bald :roll: |
Re: Unabhängige Sql Abfrage?
ok das ist beides neuland für mich da muss ich mich jetzt erstmal reindenken und mir die einzelnen befehle genau anschauen wie diese funktionieren
schon mal danke :) |
Re: Unabhängige Sql Abfrage?
Es gibt doch in Delphi diese 'Dual List box "Datei->Neu->Ander->Formulare" (jedenfalls bei D6)
Also, links sind alle Felder der Tabelle in einer Listbox. Rechts die ausgewählten. Man hat 4 Knöpfe : '<<','<', >>' und '>' '>>' verschiebt alle Einträge von links nach rechts. '<<' macht das Gleiche, nur umgekehrt. '>' verschiebt den links selektierten Eintrag von links nach rechts '<' nach links. Dann iterierst (For i:=...) Du durch die rechte Listbox und baust Dir so deine Query auf. |
Re: Unabhängige Sql Abfrage?
@alzaimar
das ist ja mal genial, genau sowas habe ich gesucht und schon ist das problem gelöst :)
Delphi-Quellcode:
funktioniert super dankeschön
adoquery1.sql.add('select '+DstList.Items.CommaText+' from Profil');
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:02 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz