有人能帮忙吗?我保留了一个旧的Delphi7项目,并有下一个麻烦。如果BLOB字段值包含Unicode字符串,如何存储它?我试过:
var
str: WideString;
begin
...
str := WideString(Fields[1].AsString); - but I get empty string
...
...
str := VarToWideStr(Fields[1].AsVariant); - but I get "(BLOB)" result in str varible.
...
end;我的解决方案:代码使用:
...
stream := TMemoryStream.Create;
try
Fields[1].SaveToStream(stream);
ss := MemStreamToWStr(stream);
finally
stream.Destroy;
end;
...和职能:
function TSnsFrame.MemStreamToWStr(Mstream: TMemoryStream): WideString;
begin
Mstream.Seek(0, soFromBeginning);
SetLength(Result, Mstream.size div 2);
MStream.ReadBuffer(Result[1], Mstream.size);
end;发布于 2013-08-09 16:39:14
看看TDataSet.CreateBlobStream()。它返回一个TStream,可用于读取/写入blob字段的原始数据。
https://stackoverflow.com/questions/18142816
复制相似问题