Moin,
ich hab da son problem...
ich hab 624 Txt Dateien dessen Inhalt in eine
DB müssen..
Da die
DB zu einem Programm gehört das auch wo anders genutzt werden kann gibt ne kleine Installationsanleiung und ich wollte ein kleines tool dazu packen, das das mit den txt dateien einlesen automatisch macht...
Habe bissel hier rumgestöpert und bin zu folgendem lösungansatz gekommen...
Das Tool hat einen Button zum öffnen des Ordners wo die 624 Datein drin liegen, diese sollen dann nach und nach geöffnet werden, entsprechend ihrem dateinamen in die
DB eingepflegt werden und die nächste datei genommen werden..
so sieht es bisher aus:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
anzahl:Integer;
error: integer;
sr: tSearchrec;
pfad:
string;
dateiname:
string;
id:
string;
begin
Command.Connection:= DatenbankConnection.DataModule1.Connection;
anzahl:=0;
if OpenDialog.Execute
then
begin
pfad := OpenDialog.FileName;
id:= extractFileName(pfad);
id:= Copy(id, 0, pos('
.txt', id)-1);
id:= IntToStr(StrToInt(id));
pfad := Copy(pfad, 0, pos('
.txt', OpenDialog.FileName)-5);
error := FindFirst(pfad + '
*.txt', faAnyfile, sr);
while error = 0
do
begin
memo1.Lines.Clear;
anzahl:=anzahl+1;
dateiname := pfad + sr.
name;
label1.Caption:=IntToStr(anzahl);
Memo1.Lines.LoadFromFile(dateiname);
//IN DB SChreiben
with command
do
begin
CommandText:='
';
CommandText:='
UPDATE Tabelle SET Daten = '
+QuotedStr(Memo1.Text) + '
WHERE ID = '
+QuotedStr(id);
execute;
end;
sleep(500);
error := FindNext(sr);
end;
FindClose(sr);
end;
end;
das Memo Feld ist nur für mich zum gucken da ob das file geladen wird...
das label soll mir nur anzeigen welche durchlauf dran ist..
sleep benutz ich, da ich nach ersten versuchen vermutet hatte, das das Programm alles zuschnell abarbeitet für die
DB
das komische ist das ein paar einträge gemacht werden, mal sind es 96, mal sind es 3, dann wieder 50 usw.. aber nie alle 624...
Kann mir wer auf die sprünge helfen?
Gruß