So, Tests ausgeführt und folgende Ergebnisse erbracht.
Probier mal folgendes aus
Daten.Q_MSSQL_Export.FieldByName(FieldName).AsString:= 'Hallo Welt!'
Gleicher Fehler
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);
Bekomme bei
.AsString
den gleichen Fehler.
Ausserdem haut mir der Compiler bei
.AssignValue()
den Fehler 'Inkompatible Typen: 'TVarRec' und 'Variant'' raus. was habe ich da falsch gemacht?
Daten.Q_MSSQL_Export.FieldByName(FieldName).AssignValue(Daten.Q_SQLITE_Export.FieldByName(FieldName).Value);
-----------------------------------------------------------
Noch eine Idee:
Kurz bevor ich die neuen Datensätze anlege beinhaltet die
Query "Q_MSSQL_Export" fast das selbe
SQL:
Code:
Select ID, dbo.RTF2Text(Memo) as Memo from Tabelle
in dem
SQL wäre es logisch, dass die Spalte nicht veränderbar ist. allerdings wird die
Query ja vor dem Anlegen geschlossen, das
SQL ausgetauscht und die
Query wieder geöffnet. kann es Trotzdem sein, dass es hier deswegen zu dem Fehler kommt?
ich hoffe ich habe mich verständlich ausgedrückt...