首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Delphi7。读取包含WideString数据的BLOB字段

Delphi7。读取包含WideString数据的BLOB字段
EN

Stack Overflow用户
提问于 2013-08-09 08:29:16
回答 1查看 877关注 0票数 0

有人能帮忙吗?我保留了一个旧的Delphi7项目,并有下一个麻烦。如果BLOB字段值包含Unicode字符串,如何存储它?我试过:

代码语言:javascript
复制
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;

我的解决方案:代码使用:

代码语言:javascript
复制
...
stream := TMemoryStream.Create;
try
  Fields[1].SaveToStream(stream);
  ss := MemStreamToWStr(stream);
finally
  stream.Destroy;
end;
...

和职能:

代码语言:javascript
复制
function TSnsFrame.MemStreamToWStr(Mstream: TMemoryStream): WideString;
begin
  Mstream.Seek(0, soFromBeginning);
  SetLength(Result, Mstream.size div 2);
  MStream.ReadBuffer(Result[1], Mstream.size);
end;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-09 16:39:14

看看TDataSet.CreateBlobStream()。它返回一个TStream,可用于读取/写入blob字段的原始数据。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18142816

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档