![]() |
nach liste.free -> EConvertError
ich habe eine textdatei, wo ich SQL-Befehle drin stehen hab.
diese lese ich in eine stringlist ein und sende jeden eintrag in eine DB. das klappt auch alles soweit. aber ich wenn ich zu guter letzt die liste leeren will, dann tritt eine EConvertError Expetion auf.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var i : integer; zeilen : tstrings; sql_query : string; begin richedit1.Lines.Add('Start des Verarbeitungsvorgangs!'); zeilen := tstringlist.Create; trans.Active := true; try zeilen.LoadFromFile(edit1.Text); for i :=0 to zeilen.Count-1 do begin sql_query := zeilen[i]; sql.SQL.Clear; sql.SQL.Add(sql_query); sql.ExecQuery; end; finally begin zeilen.Free; richedit1.Lines.Add('Daten OK'); trans.Commit; sql.Close; end; richedit1.Lines.Add('================================================================'); richedit1.Lines.Add(IntToStr(zeilen.count)+' Datensätze in Datenbank geschrieben!'); richedit1.Lines.Add('================================================================'); end; end; |
Re: nach liste.free -> EConvertError
aber ich wenn ich zu guter letzt die liste leeren will, dann tritt eine EConvertError Expetion auf.
Delphi-Quellcode:
[/quote]
procedure TForm1.Button1Click(Sender: TObject);
var i : integer; zeilen : tstrings; sql_query : string; begin richedit1.Lines.Add('Start des Verarbeitungsvorgangs!'); zeilen := tstringlist.Create; trans.Active := true; try zeilen.LoadFromFile(edit1.Text); for i :=0 to zeilen.Count-1 do begin sql_query := zeilen[i]; sql.SQL.Clear; //Hm ist hier der Fehler? sql.SQL.Add(sql_query); sql.ExecQuery; end; finally begin zeilen.Free; richedit1.Lines.Add('Daten OK'); trans.Commit; sql.Close; //Wenn hier der Fehler hier ist dann mach davor noch sql.Free end; richedit1.Lines.Add('================================================================'); richedit1.Lines.Add(IntToStr(zeilen.count)+' Datensätze in Datenbank geschrieben!'); richedit1.Lines.Add('================================================================'); end; end; So oben hab ich die (vielleicht) Lösung hingeschrieben! |
Re: nach liste.free -> EConvertError
wenn ich das ganze programm ohne zeilen.free laufen lasse, dann geht es komischer weise.
|
Re: nach liste.free -> EConvertError
Hi,
Zitat:
Nimm zuerst mal das "begin" und das "end" nach dem Finally weg. Das ist sinnlos. Das Problem ist vermutlich das "zeilen.free", denn später greifst du nochmal draufzu. Versuch mal folgendes nach dem finally:
Delphi-Quellcode:
Chris
finally
richedit1.Lines.Add('Daten OK'); trans.Commit; sql.Close; richedit1.Lines.Add('================================================================'); richedit1.Lines.Add(IntToStr(zeilen.count)+' Datensätze in Datenbank geschrieben!'); richedit1.Lines.Add('================================================================'); zeilen.Free; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:51 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz