Registriert seit: 28. Mär 2006
Ort: 32816 Schieder-Schwalenberg
397 Beiträge
Delphi 10.4 Sydney
|
Datensätze werden nicht in Tabelle gespeichert.
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
|