关于Savetobuffer的问题

kexi 2003-01-22 02:26:16
请问,我在delphi中到底如何,将buffer中的东西存入数据库呀?

我存入以后,读出的buffer不能用,readfrombuffer不好使了。

我分别用Blob和编码文本都试验了,都不行。

sososososososos!
...全文
148 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ymw2000 2003-05-28
  • 打赏
  • 举报
回复
那位大哥有BCB的相关代码????
lihuihit 2003-02-27
  • 打赏
  • 举报
回复
PB的相关代码有么?
yjs_lh 2003-02-14
  • 打赏
  • 举报
回复
我找到解决办法了。这是部分代码,供参考
最关键的是有两个函数:

function MemoryStreamToOleVariant(Strm: TMemoryStream): OleVariant;
var
Data: PByteArray;
begin
Result := VarArrayCreate([0, Strm.Size - 1], varByte);
Data := VarArrayLock(Result);
try
Strm.Position := 0;
Strm.ReadBuffer(Data^, Strm.Size);
finally
VarArrayUnlock(Result);
end;
end;

function OleVariantToMemoryStream(OV: OleVariant): TMemoryStream;
var
Data: PByteArray;
Size: integer;
begin
Result := TMemoryStream.Create;
try
Size := VarArrayHighBound (OV, 1) - VarArrayLowBound(OV, 1) + 1;
Data := VarArrayLock(OV);
try
Result.Position := 0;
Result.WriteBuffer(Data^, Size);
finally
VarArrayUnlock(OV);
end;
except
Result.Free;
Result := nil;
end;
end;

调用方法:

var
ms: TMemoryStream;
ov: OleVariant;
begin
Cell.SaveToBuffer(ov);
ms := OleVariantToMemoryStream(ov);
...//操作ms,并写回数据库等等
ms.Free;
end;

另一个的调用方法很类似。
yjs_lh 2003-02-13
  • 打赏
  • 举报
回复
我有相同的问题。
冷箫轻笛 2003-01-24
  • 打赏
  • 举报
回复
up
Cell 2003-01-23
  • 打赏
  • 举报
回复
您好:
关于buffer的演示在我们的DELPHI演示中有啊,您用OLEVARIANT类型的数据可以解决的。

256

社区成员

发帖
与我相关
我的任务
社区描述
其他产品/厂家
社区管理员
  • 其他
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧