Einzelnen Beitrag anzeigen

jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#11

AW: variabler Tabellenname in SQL-Abfrage

  Alt 9. Okt 2017, 22:48
Also ich bezeichne es wie folgt:
Hochkomma = '
Anführungszeichen = "
Tick = ´
Backtick = `

Der entscheidende Punkt für den Anfang ist doch erstmal:
Tabellen und Feldnamen gehen idealerweise im SQL "Fließtext" einfach so ohne weiteres ein, keine Hochkomma oder wie auch immer.
Es gibt in mysql (besonders) oder auch woanders (Access dann noch mit eckigen Klammern) dieses Theater, damit man auch Leerzeichen und Chinesisch usw. in die Feldbezeichner bringen kann.
Ich hab es lieber clean, ASCII ANSI Bezeichner auf Englisch und fertig.

Das ganze Problem hat erstmal nichts damit zu tun, wie ich mein SQL dann zusammensetze mit variablen Spalten.
Einfache String Konkatenierung. Dabei muss dann im Quelltext ggF. escaped werden.

Das nächste Problem ist dann die Nutzung von Parametern für die Werteangaben. Das sollte man natürlich machen, wegen kann man überall nachlesen.

Dieses Verfahren mit den Parametern funktioniert nach meiner Kenntnis aber nicht mit Feldnamen.

Im Ergebnis habe ich also Parameter eingesetzt und bin u.U. trotzdem noch nicht gegen Injection gefeit.
Das kann man aber doch wohl verhindern, indem man die Feldnamen nicht beliebig macht, sondern Wertelisten vorgibt, oder?
Also mit einer Combobox ohne Editmöglichkeit.
Gruß, Jo
  Mit Zitat antworten Zitat