Was ich hier aus dem Quelltext nicht ganz so genau entnehmen kann:
Delphi-Quellcode:
InsertSQL := Format('INSERT INTO "%s" (%s) VALUES (%s)', [TableName, InsertFieldNames, InsertFieldValues]);
qry_FB.SQL.Add(InsertSQL);
...
{ Nun die Werte je nach Datentyp übertragen von der Quelle ins Ziel }
case tbl_Pdx.Fields[k].DataType of
ftString :
qry_FB.ParamByName(FieldNameUpper).AsString := tbl_Pdx.FieldByName(FieldNameMixed).AsString;
ftSmallint,
ftInteger,
ftWord,
ftAutoInc :
qry_FB.ParamByName(FieldNameUpper).AsInteger := tbl_Pdx.FieldByName(FieldNameMixed).AsInteger;
...
qry_FB.ExecSQL(InsertSQL);
Werden die Daten satzweise übernommen?
Wenn ja, Methode einfach, billig und unelegant:
Delphi-Quellcode:
Try
qry_FB.ExecSQL(InsertSQL);
except
on e :
Exception do begin
// ggfls. Fehlertyp abfragen und Fehlermeldung in 'ne Logdatei schreiben.
end;
end;
Ja, die Daten werden datensatzweise übertragen. Genau so (
Exception abfangen) habe ich es jetzt erst mal gemacht.
Zitat:
Wie greifts Du auf die Datenbanken zu, noch über die
BDE?
Ja, habe mir diese alten
BDE-Komponenten für Delphi Seattle geholt. Der Versuch über
ODBC zuzugreifen und damit die
BDE aus der Migrations-Applikation heraus zu halten scheitert daran, dass wir ausschließlich
Paradox Tabellen im 7er Format einsetzen und das geht über
ODBC nicht.
Wir haben uns jetzt dafür entschieden erst mal keine weitere Zeit in eine Optimierung zu investieren. Zum Glück haben wir von fast allen Kunden Echtdaten hier und haben so zumindest schon mal einen Überblick wo es überall haken kann und notfalls schalte ich diese derzeit zeitintensiven Reparaturroutinen per Option in der Migrations-Applikation ein.
Danke an alle für die vielfältigen und hilfreichen Informationen. Gruß, Markus