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);
    

Anmelden zum Antworten