Also wenn ich nicht völlig blind bin, kommt "AsString" doch gar nicht in Deinem Quellcode vor. Wie kann es also da krachen?
Sorry
Ich hätte es deutlicher ausdrücken sollen.
Ist eine eifache Zuweisung mit AsString sinnvoller als der Umweg über Stream.
Ich habe vor ein paar Jahren bei der Umstellung auf
Unicode (Delphi 2010 auf XE4) den ParamHelper eingeführt,
da ich - nur bei Stored Procedures - alle Stellen im Code ändern musste, wo ich einem TParam (Memo) Text aus einer Stringliste zugewiesen habe.
Die Texte sahen dann aus wie im Anhang.
Paramter in Querys waren komischerweise nicht betroffen.
Der Helper hat wie gesagt bis XE6 funktioniert.
Nun hat sich das umgekehrt.
Jetzt liefert mir der Helper den String wie im Anhang.
Delphi-Quellcode:
procedure TParamHelper.LoadFromStrings(const AStrings: TStringList);
Var
AStream: TMemoryStream;
begin
AStream := TMemoryStream.Create;
try
AStrings.SaveToStream(AStream);
AStream.Position := 0;
LoadFromStream(AStream, ftBlob);
// Value liefert mir im Debugger: Variant array of Byte
// AsString liefert mir: siehe Anhang
finally
AStream.Free;
end;
end;
Ich habe zwar auch die
DB - Zugriffskomponenten erneuert, aber da ja TParam von Delphi kommt, habe ich die als Verdächtige ausgeschlossen.
Ich habe jetzt wieder die direkte Zuweisung mit AsString eingeführt und es funktioniert wieder.
Ich ärgere mich nur, dass ich den Grund des Verhaltens nicht erkenne.
ALso, Danke für die Antworten. Ich hoffe, ich habe mich etwas verständlicher ausgedrückt.
Frank