Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Select * from :Tablename (https://www.delphipraxis.net/156913-select-%2A-tablename.html)

JannesDKS 20. Dez 2010 14:04

Datenbank: MS SQL Server • Version: 2008 • Zugriff über: ADO

Select * from :Tablename
 
Hallo Leute,

ich bin noch ziemlich doof, was ADO angeht und bin auf ein kleines Problem gestoßen.

Ich versuche ein AdoDataset mit diesem CommandText zum Laufen zu bringen:

select count(*) from :TableName

den Parameter :TableName weise ich im Before open zu:

TadoCount.Parameters.ParamByName('TableName').Valu e := TableName;
Beim Open kommt jedoch diese Fehlermeldung:

Im Projekt MetaData.exe ist eine Exception der Klasse EOleException mit der Meldung 'Die '@P1'-Tabellenvariable muss deklariert werden' aufgetreten.

Was mache ich falsch?

DeddyH 20. Dez 2010 14:05

AW: Select * from :Tablename
 
Du kannst Parameter nur auf Werte anwenden, nicht aber auf Tabellen- oder Feldnamen.

Bernhard Geyer 20. Dez 2010 14:06

AW: Select * from :Tablename
 
Der Fehler sagt es doch schon: Der Tabellenname kann nicht als Parameter angegeben werden.

JannesDKS 20. Dez 2010 14:17

AW: Select * from :Tablename
 
hhm ok. Schade.
könnt man das irgendwie anders lösen?

JannesDKS 20. Dez 2010 14:19

AW: Select * from :Tablename
 
ahh, hab schon ne idee.
Ich weise den CommandText einfach zur Laufzeit zu.
danke leute

DeddyH 20. Dez 2010 14:22

AW: Select * from :Tablename
 
Klar, Du könntest eine Methode schreiben, in der Du den Tabellennamen als Parameter übernimmst.
Delphi-Quellcode:
procedure TBlubb.CountRecords(const Tablename: string);
const SQL = 'SELECT COUNT(*) FROM %s';
begin
  TadoCount.CommandText := Format(SQL,[Tablename]);
[edit] Wo kommt denn der letzte Post plötzlich her? [/edit]


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:25 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz