ParamByName bei Tabellennamen mit Punkt funktioniert nicht
-
Hallo,
ich habe Tabellennamen, die einen Punkt enthalten. Das konnte ich mir leider nicht aussuchen (Werte von einer Wetterstation).
AnzeigeQuery->SQL->Add ("SELECT * FROM [G1DSTCB1.12]"); funktioniert auf einem MS-SQL-Server 2000
AnsiString selDatensatz = "[G1DSTCB1.12]";
AnzeigeQuery->SQL->Add ("SELECT * FROM :Tabelle");
AnzeigeQuery->ParamByName("Tabelle")->AsString = selDatensatz; ergibt einen Fehler (Variable ‚@P1’ muss deklariert werden)Alles unter BCBuilder 5.0 und MSSQL 2000 an ODBC+BDE.
Was ist da falsch?
-
AFAIK kann man keinen Tabellennamen als Parameter übergeben (Lösung: SQL-Anweisung dynamisch erzeugen). Auch der Punkt im Tabellennamen ist m.E. unglücklich, da der Punkt in SQL-Anweisungen normalerweise den Feldnamen vom Tabellennamen trennt.
SELECT Tabellenname.Feldname ...
-
Besten Dank für die prompte Antwort.
Wird gleich ausprobiert.Gruß
Michael
-
Na, geht doch ganz einfach. Für alle, die es interessiert:
AnzeigeQuery->SQL->Add ("SELECT * FROM "+selDatensatz);