请教 用ClientDataSet存取Bolb字段!!

bcghb 2003-08-20 02:54:00
var
Stream:TMemoryStream;
Stream1:TStream;
begin
with form1.ClientDataSet1 do
begin
Edit;
Stream:=TMemoryStream.Create;
Stream.Position:=0;
form1.Memo1.Lines.SaveToStream(Stream);
Stream1:=CreateBlobStream(FieldByName('BlobField'),bmReadWrite);
try
Stream1.CopyFrom(Stream,Stream.Size);//这里出错"Stream Read Error"
Post;
finally
Stream1.Free;
end;
Stream.Free;
end;
为什么呢?
...全文
37 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
bcghb 2003-08-20
  • 打赏
  • 举报
回复
var
Stream:TMemoryStream;
begin
with form1.ClientDataSet1 do
begin
Edit;
Stream:=TMemoryStream.Create;
form1.Memo1.Lines.SaveToStream(Stream);
Stream.Position:=0;
try
TBlobField(FieldByName('BlobField')).LoadFromStream(Stream);
Post;
finally
Stream.Free;
end;
end;
已经在 AfterPost 里写了 applyupdate
但是
ORA-01465 : 无效的十六进制数字
快疯了!
bcghb 2003-08-20
  • 打赏
  • 举报
回复
var
Stream:TMemoryStream;
Stream1:TStream;
begin
with form1.ClientDataSet1 do
begin
Edit;
Stream:=TMemoryStream.Create;
form1.Memo1.Lines.SaveToStream(Stream);
Stream.Position:=0;
Stream1:=CreateBlobStream(FieldByName('BlobField'),bmReadWrite);
try
Stream1.CopyFrom(Stream,Stream.Size);
Post;
finally
Stream1.Free;
end;
Stream.Free;
end;
已经在 AfterPost 里写了 applyupdate
但是仍没有保存到记录中!????
xgc521 2003-08-20
  • 打赏
  • 举报
回复
写错了 ....
xgc521 2003-08-20
  • 打赏
  • 举报
回复
老兄:
问题出在以下位置:
1。Stream.Position:=0;
form1.Memo1.Lines.SaveToStream(Stream);
改为:
form1.Memo1.Lines.SaveToStream(Stream);
Stream.Position:=0;
2,Post;
把Post去掉即可,否则会重复保存,所以报错


bcghb 2003-08-20
  • 打赏
  • 举报
回复
var
Stream:TMemoryStream;
Stream1:TStream;
begin
with form1.ClientDataSet1 do
begin
Edit;
Stream:=TMemoryStream.Create;
// Stream.Position:=0;(原先)
form1.Memo1.Lines.SaveToStream(Stream);
Stream.Position:=0;驱 //(现在)
Stream1:=CreateBlobStream(FieldByName('BlobField'),bmReadWrite);
try
Stream1.CopyFrom(Stream,Stream.Size);//不出错"Stream Read Error"
Post;
finally
Stream1.Free;
end;
Stream.Free;
end;
但是没有保存到记录中!????
bcghb 2003-08-20
  • 打赏
  • 举报
回复
Stream1.CopyFrom(Stream,Stream.Size);//这里出错"Stream Read Error"
依旧!!!!!!!!
高手,在哪里;高手,在闪烁!
xgc521 2003-08-20
  • 打赏
  • 举报
回复
如此改写:
...
Stream1:=CreateBlobStream(FieldByName('BlobField') as TBlobField,bmWrite);
try
Stream1.Assign(Stream);
....
我是这么写的,一切正常

5,378

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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