Also meine Datenbankübertragung sieht so aus:
Delphi-Quellcode:
procedure TSDIAppForm.Button5Click(Sender: TObject);
var i,j,k : integer;
var test,umlaute : string;
begin
if MyToolConnection.Connected = true then MyToolConnection.Connected := false;
MyToolConnection.Connected := true;
for j := 0 to Listbox2.items.Count - 1 do begin
AccessTable.TableName := listbox2.Items.Strings[j]; //bekommt den Tabllenname zugeschrieben
MyToolTable.TableName := AnsiUpperCase( listbox2.Items.Strings[j]); //alle Buchstaben werden groß geschrieben
Datenfeld1 := TStringList.Create; //Stringliste wird erstellt
AccessTable.GetFieldNames(Datenfeld1); //Fieldnamen werden der Stringliste zugeschrieben
//ersetzen von Umlauten
MyToolTable.TableName := AnsiStrings.StringReplace(MyToolTable.TableName,'Ä','AE', [rfIgnoreCase]);
MyToolTable.TableName := AnsiStrings.StringReplace(MyToolTable.TableName,'Ö','OE', [rfIgnoreCase]);
MyToolTable.TableName := AnsiStrings.StringReplace(MyToolTable.TableName,'Ü','UE', [rfIgnoreCase]);
MyToolTable.Active := true;
AccessTable.Open;
MyToolTable.first;
while not MyToolTable.Eof do
MyToolTable.Delete; //Löschen der Tabelleninhalte
ProgressBar2.Position := ProgressBar2.Position +5; //<------------------Progressbar2
while not AccessTable.Eof do begin
MyToolTable.Append; //Beschreibungsbefehl
for i := 0 to AccessTable.FieldCount - 1 do begin
ProgressBar1.Position := ProgressBar1.Position +3; //<------------------Progressbar1
if i = 0 then
ProgressBar1.Position := 0;
if AccessTable.Fields[i].IsNull then begin
AccessTable.Next; //wennnichts drin steht, weiter machen
Continue;
end;
//Tabellenihalte werden dem String Umlaute zugeschrieben und ersetzen der Umlaute
Umlaute := AccessTable.Fields[i].FieldName;
Umlaute := ansistrings.StringReplace(Umlaute,'ä','ae', [rfIgnoreCase]);
Umlaute := ansistrings.StringReplace(Umlaute,'ö','oe', [rfIgnoreCase]);
Umlaute := ansistrings.StringReplace(Umlaute,'ü','ue', [rfIgnoreCase]);
if MyToolTable.FindField(Umlaute) <> nil then begin
MyToolTable.FieldByName(Umlaute).AsVariant := AccessTable.Fields[i].AsVariant;
end;
end;
MyToolTable.Post; //Beschreiben abschließen
AccessTable.Next; //nächste Tabelle
end;
MyToolTable.Close;
AccessTable.Close;
end;
showmessage('Alle Daten übertragen');
ListBox2.Clear;
end;
Also ich hab die ProgressBars jetzt nur so eingefügt, dass es nach was aussieht.
Aber deine Idee ist nicht schlecht, dank dir schon mal, ich guck mal, ob ich das mit meinem Quellcode realisieren kann
.
Mfg