Einzelnen Beitrag anzeigen

nahpets
(Gast)

n/a Beiträge
 
#15

AW: variabler Tabellenname in SQL-Abfrage

  Alt 10. Okt 2017, 12:27
Die TAdoConnction hat 'ne Methode zum Holen der Tabellennamen. Das Ergebnis wird in eine Stringliste geliefert. Dafür kann man ComboBox.Items nehmen.

Ebenfalls gibt es eine Methode zum Holen der Spaltennamen einer Tabelle, auch hier ist das Ergebnis eine Stringliste, kann also Items einer weiteren ComboBox sein.

Wenn sich der ItemIndex der Combobox für die Tabellennamen ändert, befüllt man dann die ComboBox für die Spaltennamen entsprechen (geht einfach über die Ereignisroutinen).

Beim Zusammenbauen des SQLs nimmt man dann nicht mehr ComboBox.Text sondern ComboBox.Items[ComboBox.ItemIndex] und schon hat man eine sichere Auswahl von Tabellen und Spaltennamen.

Wenn der ItemIndex der ComboBoxen kleiner 0 ist, gibt man dem Anwender ggfls. eins auf die Finger, weil er was ungültiges in ComboBox.Text eingegeben hat oder bei ItemIndex = -1 macht man einfach nichts. (Button zum Schließen der Suchmaske disablen, keine Zuweisung des SQLs an die Query ...)

Damit der Anwender über die Eingabe des Suchbegriffes keinen "Mist" mehr machen kann, fügt man, statt der Eingabe, in das SQL einen Parameter ein und befüllt diesen dann mit der Eingabe. Dadurch spart man sich dann auch direkt das Rummhampeln mit ' und '' und ''' und QuotedStr.
  Mit Zitat antworten Zitat