Einzelnen Beitrag anzeigen

nahpets
(Gast)

n/a Beiträge
 
#5

AW: EDataBaseError: Feld 'Memo' kann nicht verändert werden

  Alt 21. Nov 2016, 17: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.
  Mit Zitat antworten Zitat