AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Unabhängige Sql Abfrage?

Unabhängige Sql Abfrage?

Ein Thema von Overclocker · begonnen am 18. Dez 2007 · letzter Beitrag vom 18. Dez 2007
Antwort Antwort
Overclocker

Registriert seit: 10. Jan 2007
215 Beiträge
 
#1

Unabhängige Sql Abfrage?

  Alt 18. Dez 2007, 15:30
Datenbank: SQL • Zugriff über: SQL-Query mit ADO Komponente
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
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Unabhängige Sql Abfrage?

  Alt 18. Dez 2007, 15:33
Schleife über Array der Referenzen oder [].FindComponent()[/i]
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.288 Beiträge
 
Delphi 12 Athens
 
#3

Re: Unabhängige Sql Abfrage?

  Alt 18. Dez 2007, 16:37
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
  Mit Zitat antworten Zitat
Overclocker

Registriert seit: 10. Jan 2007
215 Beiträge
 
#4

Re: Unabhängige Sql Abfrage?

  Alt 18. Dez 2007, 16:43
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
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#5

Re: Unabhängige Sql Abfrage?

  Alt 18. Dez 2007, 16:51
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.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Overclocker

Registriert seit: 10. Jan 2007
215 Beiträge
 
#6

Re: Unabhängige Sql Abfrage?

  Alt 18. Dez 2007, 17:12
@alzaimar


das ist ja mal genial, genau sowas habe ich gesucht und schon ist das problem gelöst



adoquery1.sql.add('select '+DstList.Items.CommaText+' from Profil'); funktioniert super dankeschön
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:49 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz