Re: Paradox to Firebird
Zitat:
Delphi-Quellcode:
dann bekomm ich zur Laufzeit eine Exception sobald ExecSQL() ausgeführt wird ...
if tblBDE.TableName = 'ART.DB' then
begin tblBDE.First; while not tblBDE.Eof do begin sqFirebird.ParamByName('Nummer').AsString := tblBDE.FieldByName('Nummer').AsString; sqFirebird.ParamByName('Oberbegriff').AsString := tblBDE.FieldByName('Oberbegriff').AsString; with sqFirebird.SQL do begin Clear; Add('INSERT INTO ' + cbFirebirdTable.Text + '(NUMMER, OBERBEGRIFF) VALUES(:Nummer, :Oberbegriff)'); sqFirebird.PrepareStatement; end; sqFirebird.Prepared := True; sqFirebird.ExecSQL(); tblBDE.Next; end; end Exception-Klasse EDatabaswError mit Meldung 'sqFirebird: Die Feldnamen für %s konnten nicht erkannt werden' |
Re: Paradox to Firebird
Schau Dir noch mal meinen Code an und vergleiche ihn mit meinem Code.
Die SQL-Abfrage selbst wird bei mir außerhalb der Schleife erstellt. Innerhalb der Schleife werden nur noch die Parameter gefüllt und abgefeuert. Du hingegen versuchst auf die Parameter zuzugreifen an einer Stelle, wo sie noch gar nicht existieren. Außerdem baust Du wieder innerhalb der Schleife das SQL-Statement zusammen. Genau das wollen wir doch mit den Parametern verwenden. Gruß, Jens |
Re: Paradox to Firebird
Zitat:
hast mir heut sehr geholfen ... :dp: |
Re: Paradox to Firebird
Hallo,
so etwa muss es aussehen
Delphi-Quellcode:
Das Erstellen der FB-Query und Prepare ausserhalb der Schleife.
if tblBDE.TableName = 'ART.DB' then
begin with sqFirebird.SQL do begin Clear; Add('INSERT INTO ' + cbFirebirdTable.Text + '(NUMMER, OBERBEGRIFF) VALUES(:Nummer, :Oberbegriff)'); sqFirebird.PrepareStatement; end; sqFirebird.Prepared := True; tblBDE.First; while not tblBDE.Eof do begin sqFirebird.ParamByName('Nummer').AsString := tblBDE.FieldByName('Nummer').AsString; sqFirebird.ParamByName('Oberbegriff').AsString := tblBDE.FieldByName('Oberbegriff').AsString; sqFirebird.ExecSQL(); tblBDE.Next; end; end Es handelt sich ja immer um die gleiche Abfrage, aber mit anderen Werten, deshalb ja die Parameter. Heiko |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:28 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