Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi ParamByName & SQL (https://www.delphipraxis.net/7262-parambyname-sql.html)

Tester 7. Aug 2003 13:51


ParamByName & SQL
 
Hallo!

Kennt sich jemand von euch mit ParamByName aus?

Habe das schon mal verwendet mit LIKE zusammen, da bin ich auch wunderbar zu recht gekommen.

Jetzt lasse ich mir alle Tabellen in einer ComboBox anzeigen und ich möchte die ausgewählte gleich anzeigen lassen.

Ist das über Params überhaupt möglich?

Momentan sieht es so aus :

Code:
  Query1.SQL.Clear;
  stmtParams := TParams.Create;
  stmtParams.CreateParam(ftString, 'DBName', ptInput );
  stmtParams.ParamByName('DBName').AsString := OvcFileComboBox1. Items[OvcFileComboBox1.ItemIndex];
  Query1.SQL.Add( ' SELECT * FROM '':DBName''');
  Query1.Prepare;
  Query1.ExecSQL();
  Query1.Open;

  Query1.Close;
Bekomme jedoch immer die Meldung, ungültiger Dateiname.
Jedoch gibts die gewählten Datein.

Danke im voraus

Gruß

TESTER

mr2 7. Aug 2003 14:18

Re: ParamByName & SQL
 
Soweit mir bekannt ist, darf der Tabellennamen in SQL-Anweisungen nicht parametrisiert werden. Du wirst also den SQL-String "zusammenbauen" müssen.
Delphi-Quellcode:
  Query1.SQL.Text := 'select * from ' + DBName;
  Query1.Open;

Mario 7. Aug 2003 14:19

Re: ParamByName & SQL
 
Spontane Idee, ohne es zu testen:
Delphi-Quellcode:
Query1.SQL.Clear;
//  stmtParams := TParams.Create;
//  stmtParams.CreateParam(ftString, 'DBName', ptInput );
Query1.SQL.Add( ' SELECT * FROM :DBName');
stmtParams.ParamByName('DBName').AsString := OvcFileComboBox1. Items[OvcFileComboBox1.ItemIndex];
Query1.Prepare;
//  Query1.ExecSQL(); // wozo vor Open?
Query1.Open;
Query1.Close;

Mario 7. Aug 2003 14:21

Re: ParamByName & SQL
 
Stimme ich zu, die Position vom Parameter ist mir gar nicht aufgefallen :oops:

Tester 7. Aug 2003 14:23

Re: ParamByName & SQL
 
Genau das wollt ich auch gerade posten.
Denn so funktionierts.:lol:

Danke für Eure Mühe!

Gruß

TESTER

Tester 7. Aug 2003 14:29

Re: ParamByName & SQL
 
Zur besseren Übersicht :

Code:
var
  lwert : string;
begin
  lwert := ComboBox1.Items[ComboBox1.ItemIndex];
  Query1.SQL.Clear;
  Query1.SQL.Add('SELECT * FROM '+lwert);
  Query1.Prepare;
  Query1.Open;
Hab mich wohl von einem anderen Beitrag beirren lassen, deshalb der erste Versuch mit Param.

Gruß

TESTER

mr2 7. Aug 2003 14:41

Re: ParamByName & SQL
 
arbeite doch gleich mit Query1.SQL.Text, dann sparst Du Dir den Aufruf von Clear :spin:


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:23 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