Einzelnen Beitrag anzeigen

MasterChief_88
(Gast)

n/a Beiträge
 
#3

Re: !!! Datenbankübertragungsfortschritt - Progressbar wie?

  Alt 26. Nov 2009, 11:37
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
  Mit Zitat antworten Zitat