Einzelnen Beitrag anzeigen

Walter Landwehr

Registriert seit: 28. Mär 2006
Ort: 32816 Schieder-Schwalenberg
397 Beiträge
 
Delphi 10.4 Sydney
 
#1

Datensätze werden nicht in Tabelle gespeichert.

  Alt 6. Feb 2015, 13:38
Datenbank: Firebird • Version: 2,5 • Zugriff über: IBO
Hallo an alle Delphi und Firebird Experten,

ich habe folgendes Problem: Ich möchte aus einer alten Datenbank eine Tabelle in eine neue Datenbank mit veränderter Struktur Daten übernehmen. In der alten Tabelle sind 10145 Datensätze. Übernommen werden mir nur 9845. Genau die ersten 300 fehlen. Wie kann ich den Fehler abfangen, warum die Datensätze nicht geschrieben werden.

Hier mal mein Statement:

Delphi-Quellcode:
if (Query_Quelle.RecordCount > 0) then
    begin
      Query_Quelle.First;
      while not Query_Quelle.eof do
      begin
      try
        dmMain.TAMain.StartTransaction;
        Query_Ziel.Close;
          Query_Ziel.SQL.Clear;
         Query_Ziel.SQL.Add('insert into EVENTS (ID, ACTUALFINISH, ACTUALSTART, '
           + 'CAPTION, EVENTTYPE, FINISH, LABELCOLOR, LOCATION, MESSAGE, '
           + 'OPTIONS, PARENTID, RECURRENCEINDEX, REMINDERDATE, REMINDERMINUTESBEFORESTART, '
           + 'REMINDERRESOURCESDATA, RESOURCEID, STARTZEIT, STATE, TASKCOMPLETEFIELD, '
           + 'TASKINDEXFIELD, TASKLINKSFIELD, TASKSTATUSFIELD, GROUPID, PATIENTNR, '
           + 'PATIENTENNUMMER, SUCHWORT, IMWARTEZIMMER, SYNCIDFIELD, RECURRENCEINFO) '
           + 'Values (:ID, :ACTUALFINISH, :ACTUALSTART, '
           + ':CAPTION, :EVENTTYPE, :FINISH, :LABELCOLOR, :LOCATION, :MESSAGE, '
           + ':OPTIONS, :PARENTID, :RECURRENCEINDEX, :REMINDERDATE, :REMINDERMINUTESBEFORESTART, '
           + ':REMINDERRESOURCESDATA, :RESOURCEID, :STARTZEIT, :STATE, :TASKCOMPLETEFIELD, '
           + ':TASKINDEXFIELD, :TASKLINKSFIELD, :TASKSTATUSFIELD, :GROUPID, :PATIENTNR, '
           + ':PATIENTENNUMMER, :SUCHWORT, :IMWARTEZIMMER, :SYNCIDFIELD, :RECURRENCEINFO)');
        Query_Ziel.ParamByName('ID').Value := dmMain.GetGeneratorWert('GEN_TBL_EVENTS');
        Query_Ziel.ParamByName('ACTUALFINISH').AsDateTime := Query_Quelle.FieldByName('ACTUALFINISH').AsDateTime;
        Query_Ziel.ParamByName('ACTUALSTART').AsDateTime := Query_Quelle.FieldByName('ACTUALSTART').AsDateTime;
        Query_Ziel.ParamByName('CAPTION').AsString := Query_Quelle.FieldByName('CAPTION').AsString;
        Query_Ziel.ParamByName('EVENTTYPE').AsInteger := Query_Quelle.FieldByName('ETYPE').AsInteger;
        Query_Ziel.ParamByName('FINISH').AsDateTime := Query_Quelle.FieldByName('FINISH').AsDateTime;
        Query_Ziel.ParamByName('LABELCOLOR').AsInteger := Query_Quelle.FieldByName('LABELCOLOR').AsInteger;
        Query_Ziel.ParamByName('LOCATION').AsString := Query_Quelle.FieldByName('LOCATION').AsString;
        Query_Ziel.ParamByName('MESSAGE').AsString := Query_Quelle.FieldByName('EMESSAGE').AsString;
        Query_Ziel.ParamByName('OPTIONS').AsInteger := Query_Quelle.FieldByName('OPTIONS').AsInteger;
        Query_Ziel.ParamByName('PARENTID').AsInteger := Query_Quelle.FieldByName('PARENTID').AsInteger;
        Query_Ziel.ParamByName('RECURRENCEINDEX').AsInteger := Query_Quelle.FieldByName('RECURRENCEINDEX').AsInteger;
        Query_Ziel.ParamByName('REMINDERDATE').AsDateTime := Query_Quelle.FieldByName('REMINDERDATE').AsDateTime;
        Query_Ziel.ParamByName('REMINDERMINUTESBEFORESTART').AsInteger := Query_Quelle.FieldByName('REMINDERMINUTES').AsInteger;
// Query_Ziel.ParamByName('REMINDERRESOURCESDATA').Value := Query_Quelle.FieldByName('REMINDERRESOURCESDATA').AsString;
        Query_Ziel.ParamByName('RESOURCEID').AsInteger := Query_Quelle.FieldByName('RESID').AsInteger;
        Query_Ziel.ParamByName('STARTZEIT').AsDateTime := Query_Quelle.FieldByName('STARTZEIT').AsDateTime;
        Query_Ziel.ParamByName('STATE').AsInteger := Query_Quelle.FieldByName('STATE').AsInteger;
// Query_Ziel.ParamByName('TASKCOMPLETEFIELD').Value := 0;
// Query_Ziel.ParamByName('TASKINDEXFIELD').Value := 0;
// Query_Ziel.ParamByName('TASKLINKSFIELD').Value := '';
// Query_Ziel.ParamByName('TASKSTATUSFIELD').Value := 0;
// Query_Ziel.ParamByName('GROUPID').Value := 0;
        Query_Ziel.ParamByName('PATIENTNR').AsInteger := Query_Quelle.FieldByName('PATIENTNR').AsInteger;
        Query_Ziel.ParamByName('PATIENTENNUMMER').AsInteger := Query_Quelle.FieldByName('PATIENTNUMMER').AsInteger;
        Query_Ziel.ParamByName('SUCHWORT').AsString := Query_Quelle.FieldByName('PATIENTSUCHWORT').AsString;
        Query_Ziel.ParamByName('IMWARTEZIMMER').AsString := Query_Quelle.FieldByName('IMWARTEZIMMER').AsString;
        Query_Ziel.ParamByName('SYNCIDFIELD').AsString := Query_Quelle.FieldByName('SYNCIDFIELD').AsString;
        Query_Ziel.ParamByName('RECURRENCEINFO').AsString := Query_Quelle.FieldByName('RECURRENCEINFO').AsString;
        Query_Ziel.ExecSQL;
        Query_Quelle.Next;
      finally
        dmMain.TAMain.RollBackRetaining;
      end;
      end;
    end;
Beim Debuggern wird der ExecSQL Befehl im ersten Datensatz auch ausgeführt jedoch landet der Datensatz nicht in die Tabelle. Trigger und sonstiges habe ich deaktiviert. Die aus kommentierten Zeilen sind Felder in der neuen Struktur und sind nicht relevant.

Kann mir jemand einen Tipp geben, wie ich abfangen kann warum der Datensatz nicht geschrieben wird.
Vielen Dank schon mal im voraus.
Walter Landwehr
Mfg

Walter
  Mit Zitat antworten Zitat