Wie führe ich eine Abfrage für eine Tabelle mit einem Doppelpunkt im Namen durch?

8

Ich lese Daten aus einer MDB-Datei (MSAccess 2000-Format). Es gibt einige Tabellen, die Doppelpunkte in ihren Namen haben. Ich erhalte eine Ausnahme, wenn ich versuche, Abfragen für diese Tabellen zu öffnen:

%Vor%

das ist mein Code:

%Vor%     
saastn 30.04.2016, 16:10
quelle

2 Antworten

8

TQuery interpretiert das : wenn ParamCheck = true .
Setzen Sie ParamCheck:= false und setzen Sie dann SQL.Text .

%Vor%

Jetzt funktioniert es.

Kombinieren von Spalten- und Tabellennamen und -parametern
Wenn Sie unbedingt den Pfad der Verwendung von Tabellen- / Spaltennamen mit Doppelpunkten durchgehen müssen und trotzdem an anderer Stelle Parameter in Ihrer Abfrage verwenden möchten, können Sie den Tabellen- / Spaltennamen mit einem Makro ausfüllen.
Dies erfordert jedoch FireDac. Ich empfehle Ihnen, sehr vorsichtig damit zu sein, denn im Gegensatz zu Parametern sind Makros nicht gegen SQL-Injection sicher!

Siehe auch: Ссылка

    
Johan 30.04.2016, 16:29
quelle
4

Ich habe Lösungen in anderen Sprachen geprüft. Aber Johans Antwort scheint die richtige zu sein, aber die eine hat hier funktioniert auch in Delphi / Access case:

Wenn Sie Backticks um Ihren Tabellennamen herum verwenden, sollte dies durch die Param-Prüfung ignoriert werden.

%Vor%

Dieser kann auch mit Parametern in der Abfragezeichenfolge kombiniert werden.

    
saastn 30.04.2016 17:23
quelle