Moin,
irgendwie hab ich Problemchen ein billiges unidirektionales DataSet zu übertragen (Server>Client).
Das TPgQuery direkt als Result via DataSnap zu Übertragen schägt natürlich fehl.
Zitat:
Im Projekt Project3.exe ist eine
Exception der Klasse TDBXError mit der Meldung 'Remote-Fehler: Intern: Typ tkPointer wird aktuell nicht unterstützt' aufgetreten.
Mit einem TClientDataSet klappte es auch nicht.
Das TPgQuery in über TdxMemData.LoadFormDataSet und TdxMemData.SaveToStream in einen stream zu bekommen ist leicht,
aber TdxMemData.LoadFromStream ließt diesen Stream nicht wieder aus > Keine Fehlermeldung, aber das TdxMemData bleibt einfach leer.
PS: TdxMemData.LoadFromStream bleibt in einer Endlosschleife, wenn man ihm direkt einen Stream vom DataSnap übergibt. Umkopiert in einen TMemoryStream geht es dann, da der DBXStream vom DataSnap .Position nicht unterstützt und da einfach immer nur 0 zurückgibt.
Über einen TDBXDataSetReader (welchen das DataSnap nativ übertragen kann) klappt es.
Halt nee, leider doch nicht, denn dieser TDBXDataSetReader kann zwar ein DataSet einlesen, es wird auch alles korrekt übertragen, aber wenn man die Daten zurück in ein DataSet übertragen will, dann knallt es, da keine dynamischen TEXT (MEMO) und VARCHAR (ohne Längenangabe) ausgelesen werden können > "Not Implemented".
(ein CAST in den Queries, wo man dieses z.B. in ein VARCHAR(255) castet, ist ja nicht wirklich eine Lösung.
So, ich binn dann mal weiter am Suchen und Probieren, aber wenn da jemand passende Tipps hat, dann kann er/sie sich ja gerne mal bei mir melden.
Ach ja, es wäre schön, wenn es direkt über einen vorhandenen DataSnap-Server laufen würde.
Allerdings müssen wir für die langsame und begrenzte Stream-Übertragung auch schon einen alternativen Übertragungskanal implementieren, also falls es sein muß, dann würde was Anderes auch gehn.