Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Fehler in Abfrage aber warum? (https://www.delphipraxis.net/21929-fehler-abfrage-aber-warum.html)

ibp 10. Mai 2004 10:35


Fehler in Abfrage aber warum?
 
Hallo habe folgenden Source der eine Exception auslöst, ich denke es ist der Tabellen Name, den ich verkehrt übergebe! Die Tabelle und das Feld existieren aber!
Wenn ich die Zeilen ändere in
"sql.Add('alter table '+deltable+' drop '+delfld);" dann passiert der gleiche Mist! http://www.delphipraxis.net/images/smiles/wall_bash.gif
Aber wenn ich es so mache
"sql.Add('alter table '+edTabTname.Text+' drop '+edTabPrefix.Text+'_'+edFldName.Text);", dann klappt es!
http://www.delphipraxis.net/images/smiles/gruebel.gif Wie geht dem ???

Delphi-Quellcode:
  if ifid_pkey='' then exit;
  deltable:=edTabTname.Text; // Tabelle
  delfld:=edTabPrefix.Text+'_'+edFldName.Text; // Feld
  with quWorkTables do begin
    sql.clear;
    sql.Add('alter table :tble drop :fld');
    params.ParamByName('tble').AsString := deltable;
    params.ParamByName('fld').AsString := delfld;
    try
      ExecSQL; // Tabelle löschen
    except
        on E: Exception do ShowMessage('Fehler beim löschen des Feldes "'+delfld+'"'+#13+
                                     'in Tabelle "'+deltable+'"!'+#13+
                                     E.Message);
    end; // try..except
  end; // with
:wall:

Sharky 10. Mai 2004 10:37

Re: Fehler in Abfrage aber warum?
 
Hai ibp,

Tabellennamen könne IMHO nicht als Parameter übergeben werden.

Robert_G 10. Mai 2004 10:41

Re: Fehler in Abfrage aber warum?
 
Du kannst weder einen Tabellen- noch Spaltennamen als Parameter übergeben. ;)

Es sollte aber so gehen:
Delphi-Quellcode:
  with quWorkTables do
  begin
    SQL.Text := 'ALTER Table ' + deltable + ' DROP ' + delfld;
    try
      ExecSQL; // Tabelle löschen
    except
      on E: Exception do
        ShowMessage('Fehler beim löschen des Feldes "' + delfld + '"' + #13#10 +
                    'in Tabelle "' + deltable + '"!' + #13#10 +
                    E.Message);
    end; // try..except
  end; // with

ibp 10. Mai 2004 10:43

Re: Fehler in Abfrage aber warum?
 
aber warum dann der fehler bei:

Delphi-Quellcode:
sql.Add('alter table '+deltable+' drop '+delfld);
wenn doch
Delphi-Quellcode:
deltable:=edTabTname.Text; // Tabelle
delfld:=edTabPrefix.Text+'_'+edFldName.Text; // Feld
edTabTname.Text ist doch ein string und deltable ist ein string!
das alles klappt aber, wenn
Delphi-Quellcode:
sql.Add('alter table '+edTabTname.Text+' drop '+edTabPrefix.Text+'_'+edFldName.Text);
?????


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