Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - "Case RadioGroup.ItemIndex" .. mehrere SQL-Zeilen
peppi - Mo 31.03.03 13:13
Titel: "Case RadioGroup.ItemIndex" .. mehrere SQL-Zeilen
Hallo,
hab ein Problem mit meiner RadioGroup. Ich möchte bei klicken der einzelnen Auswahlfelder meiner Query verschiedenen SQL-Text zuweisen.
Hab das folgendermaßen geschrieben:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| procedure TForm1.RadioGroup1Click(Sender: TObject); begin with Query1 do begin close; with SQL do begin clear; ADD('select * from tabelle'); ADD('where NUMMER LIKE ' + QuotedStr(Edit1.Text + '%')); ADD('and NUMMER2 = ' + QuotedStr(Edit2.Text+ '')); case RadioGroup1.ItemIndex of 1: ADD('and NUMMER not in ( select NUMMER from tabelle where DATUM IS NOT NULL)'); ADD('and NAME = ' + QuotedStr(Edit2.Text+ '')); end; Add ('order by DATUM, NUMMER, NAME'); end; Query1.Open; end; ... |
Beim ausführen bekomme ich immer die Fehlermeldung:
"Konstantenausdruck erwartet". Kann man mit der Case-Anweisung nicht mehrere Zeilen zuordnen? Sollte ich hier lieber die if Anweisung nehmen?
Wollte lieber bei Case bleiben aus Gründen der Übersichtlichkeit.
LG Jana!!
UGrohne - Mo 31.03.03 13:24
Quelltext
1: 2:
| 1: ADD('and NUMMER not in ( select NUMMER from tabelle where DATUM IS NOT NULL)'); ADD('and NAME = ' + QuotedStr(Edit2.Text+ '')); |
In diesen Zeilen steckt der Fehler. Bei case 1 führt er die Add-Anweisung aus, dann muss danach aber ein anderer Fall kommen, also 2: und die dazugehörige Anweisung. Die ganze case-Anweisung muss dann mit end; abgeschlossen werden.
Willst Du mehrere Anweisung bei case 1 ausführen, musst Du diese in begin ... end; einbauen, also etwa so:
Quelltext
1: 2: 3: 4: 5: 6: 7:
| 1: begin ADD('and NUMMER not in ( select NUMMER from tabelle where DATUM IS NOT NULL)'); ADD('and NAME = ' + QuotedStr(Edit2.Text+ '')); end; 2: {eine andere Anweisung oder Anweisungsblock} end; |
Dann müsste es funktionieren
kiwicht - Mo 31.03.03 13:24
klar, geht alles ;)
und zwar nach folgendem Prinzip:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| case RadioGroup.ItemIndex of 0: begin [...] end; 1: begin [...] end; end; |
fertich!
fragen? fragen!
mfg
//EDIT
WAAAHH.... zu langsam.... heul... :(
Moderiert von
UGrohne: Code-Tags verbessert (hehe, war schneller!)
peppi - Mo 31.03.03 13:30
Ahhh... Super !!!
Danke euch BEIDEN für die Hilfe :D
LG Jana!!!
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!