Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   DbImport hängt sich auf (https://www.delphipraxis.net/176102-dbimport-haengt-sich-auf.html)

blondervolker 12. Aug 2013 16:36

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;

mkinzler 12. Aug 2013 16:43

AW: DbImport hängt sich auf
 
Was jetzt, Bearbeiten oder Einfügen?
Delphi-Quellcode:
   AbsTable1.Edit;
    AbsTable1.Insert;

Perlsau 12. Aug 2013 17:09

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:
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 ...:?:

blondervolker 12. Aug 2013 17:27

AW: DbImport hängt sich auf
 
Erstmal Danke für die Tipps.
Ich geb mir Mühe... auch mit dem einrücken...:oops:

blondervolker 13. Aug 2013 09:24

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:

Union 13. Aug 2013 09:45

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"?

Medium 13. Aug 2013 10:01

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.

jaenicke 13. Aug 2013 10:34

AW: DbImport hängt sich auf
 
Zitat:

Zitat von blondervolker (Beitrag 1224562)
Hab alles so gemacht,aber nach ca. 500 Datensätzen hängt sich die Exe auf.

Auch beim Debuggen? Und wenn ja in welcher Zeile?

blondervolker 13. Aug 2013 11:15

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:

Sir Rufo 13. Aug 2013 11:23

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 01:14 Uhr.
Seite 1 von 3  1 23      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz