AW: EDataBaseError: Feld 'Memo' kann nicht verändert werden
21. Nov 2016, 18:08
Also prinzipiell finde ich das Vorgehen so ok, mache das auch regelmäßig, wenn von X nach Y kopiert werden soll, und die Routine funktioniert halt auch ohne Änderung, wenn die Tabellen noch dutzende von Spalten dazubekommen.
Es gibt nur einen Unterschied:
Benutzte immer, egal welcher Typ jetzt tatsächlich in den Tabellen vorkommt .AsString
Das dürfte erst problematisch werden, wenn man Blobfelder mit irgendwelchem binären Inhalt (wie Grafiken ...) hat, auf diese Weise kopieren will.
Anstelle von .Value
könnte eventuell auch .AsVariant
funktionieren oder .AssignValue()
Also statt Daten.Q_MSSQL_Export.FieldByName(FieldName).Value := Daten.Q_SQLITE_Export.FieldByName(FieldName).Value;
eventuell Daten.Q_MSSQL_Export.FieldByName(FieldName).AssignValue(Daten.Q_SQLITE_Export.FieldByName(FieldName).Value);
Wobei: Bei der Benutzung von Variant kann man schonmal "etwas anderes rausbekommen, als man reingetan hat".
Insbesondere, wenn man ein leeres Feld hat, dann weiß man nicht zwingend, ob im Ziel Null oder ein Leerstring oder EmptyParam ankommt.
|