Einzelnen Beitrag anzeigen

Perlsau
(Gast)

n/a Beiträge
 
#3

AW: DbImport hängt sich auf

  Alt 12. Aug 2013, 17:09
Wie MKinzler schon aufgezeigt hat: Ein Insert direkt nach einem Edit macht keinen Sinn. Du versetzt den aktuellen Datensatz in den Edit-Modus, ohne ihn via Post oder Cancel wieder daraus zu befreien. Es könnte daher sein, daß das anschließende Insert dazu führt, daß irgend ein Stack überläuft, nämlich der, der sich die Edit-Befehle merkt. Unübersichtlich ist auch die Reihenfolge von ADOTable1.Next und AbsTable1.Post gewählt: Besser wäre es hier, das Next ganz am Schluß des Schleifenrumpfes aufzurufen.

Und schließlich: Die Formatierung macht auch keinen Sinn. Besser wäre hier, die Zuweisungen im Verhältnis zu Edit und Post einzurücken:

Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject); // Übernahme Import Accdb Anfang
begin
  ADOTable1.First;

  while not ADOTable1.Eof do
  begin
    AbsTable1.Insert;
      AbsTable1.FieldByName('Preis').AsString := ADOTable1.FieldByName('Preis').AsString;
      AbsTable1.FieldByName('DEU').AsString := ADOTable1.FieldByName('DEU').AsString;
      AbsTable1.FieldByName('ENG').AsString := ADOTable1.FieldByName('ENG').AsString;
      AbsTable1.FieldByName('ITA').AsString := ADOTable1.FieldByName('ITA').AsString;
    AbsTable1.Post;

    ADOTable1.Next;
  end;
end;
So siehst du auch gleich, wenn ein Edit und ein Insert derselben Tabelle aufeinander folgen.

Noch eine Frage: Wieso ist Preis ein String? Damit kann man doch gar nicht mehr rechnen ...
  Mit Zitat antworten Zitat