![]() |
Datenbank: Access • Version: 2007 • Zugriff über: ADO
DbImport hängt sich auf
Hallo,
versuche aus meiner Access DB nach Absolut DB, vier Felder mit ca. 17000 Datensätzen zu importieren.(Erstversuch) Aber bei ca.1400 Datensätzen hängt sich die Exe auf,(keine Rückmeldung).:oops:
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
begin //Übernahme Import Accdb Anfang ADOTable1.First; while not ADOTable1.Eof do begin AbsTable1.Edit; 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; ADOTable1.Next; AbsTable1.Post; //Übernahme Import in Absolute DB Ende end; end; |
AW: DbImport hängt sich auf
Was jetzt, Bearbeiten oder Einfügen?
Delphi-Quellcode:
AbsTable1.Edit;
AbsTable1.Insert; |
AW: DbImport hängt sich auf
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:
So siehst du auch gleich, wenn ein Edit und ein Insert derselben Tabelle aufeinander folgen.
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; Noch eine Frage: Wieso ist Preis ein String? Damit kann man doch gar nicht mehr rechnen ...:?: |
AW: DbImport hängt sich auf
Erstmal Danke für die Tipps.
Ich geb mir Mühe... auch mit dem einrücken...:oops: |
AW: DbImport hängt sich auf
Hab alles so gemacht,aber nach ca. 500 Datensätzen hängt sich die Exe auf.
Keine Rückmeldung.:oops:Irgendetwas mach ich bestimmt verkehrt.:oops: |
AW: DbImport hängt sich auf
Hast Du das vielleicht in einer Transaktion gestartet? Wie sieht die Hauptspeicherauslastung aus? Und was heißt konkret "hängt sich auf"?
|
AW: DbImport hängt sich auf
Ich vermute einfach mal, dass die Operation zu lange dauert, und Windows das Programm als tot ansieht, weil es keine Messages mehr abarbeitet. Ein gelegentliches "Application.ProcessMessages;" in der Schleife könnte schon helfen.
Das Programm läuft allerdings, auch wenn Windows meckert, weiter. Du müsstest einfach nur lange genug warten. |
AW: DbImport hängt sich auf
Zitat:
|
AW: DbImport hängt sich auf
Liste der Anhänge anzeigen (Anzahl: 1)
Hab das "Miniprojekt" mit drangehangen.Aber nur mit ca.1000 Datensätzen.
Die Exen habe ich gelöscht.(16 MB) Wenn ich auf Import drücke und die Form verschiebe,spinnt die Exe. Das gleich passiert,wenn ich den Projektordner nur verkleinere...:oops: |
AW: DbImport hängt sich auf
"hängt sich auf" oder "spinnt" sind eine super Fehlerbeschreibung und würde ich bei einem DAU auch durchgehen lassen - er weiß es einfach nicht besser.
Jemand der selber programmiert, sollte es besser wissen (beschreiben können). Also (mitdenfingernindernasepuhlundherauszieh) wie ist die genaue Reaktion des Programms? Was zeigt der Taskmanager zu der Anwendung an? Hast du das Programm schon mal mit den 1000 Datensätzen laufen gelassen und so ca. 30 Minuten abgewartet? Tauchen in der DB die Datensätze auf? Arbeitest du mit Transaktionen? Ach ja, bislang hast du dich erfolgreich vor jeglicher Beantwortung von Fragen gedrückt. Wenn du das nicht möchtest, dann würde ich dir ein Häkelkreisforum empfehlen, aber erwarte hier keine Lösungen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:01 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