报错: 缺少所需的空白区 100在线等

winnerxcf 2009-09-02 12:00:36
报错: 缺少所需的空白区

ms:= TMemoryStream.Create;
SOAPAttach.SaveToStream(ms);
TBlobField(rs.FieldByName('FileData')).LoadFromStream(ms);

自己感觉应该是 TMemoryStream.Create 创建的时候没有不足。
这个是什么原因?
...全文
239 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
wooden954 2009-09-03
  • 打赏
  • 举报
回复
SOAPAttach.SaveToStream(ms);
这句执行之后MS的指针会指向末尾,所以当下一句TBlobField(rs.FieldByName('FileData')).LoadFromStream(ms); 执行的时候会出错,需要这样

SOAPAttach.SaveToStream(ms);
MS.postion:=0;
TBlobField(rs.FieldByName('FileData')).LoadFromStream(ms);

winnerxcf 2009-09-03
  • 打赏
  • 举报
回复
问题查出来了。
SoapAttach: TSOAPAttachment
应该是SoapAttach 的远程传输的时间设置问题吧
只要过了30秒就会报错。

谁知道这个时间是那里怎么设置的???
winstonbonaparte 2009-09-02
  • 打赏
  • 举报
回复
SOAPAttach这个是什么?
winnerxcf 2009-09-02
  • 打赏
  • 举报
回复
能解释下顺序对调的原因??
de410 2009-09-02
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 winnerxcf 的回复:]
         
这是原来的
  rs.Open;
            rs.Append;
            rs.FieldByName('Datetime').AsDateTime:= now;
            rs.FieldByName('Customer').AsString:= Customer;
            rs.FieldByName('FileName').AsString:= FName;
            rs.FieldByName('FileType').AsString:= FType;
            rs.FieldByName('Status').AsString:= '1';

            ms:= TMemoryStream.Create;
            SOAPAttach.SaveToStream(ms);
            TBlobField(rs.FieldByName('FileData')).LoadFromStream(ms);

            rs.Post;
rs.Free; //释放
ms.Free;
//顺序对调一下

[/Quote]
ms.Free;
rs.Free; //释放
winnerxcf 2009-09-02
  • 打赏
  • 举报
回复

这是原来的
rs.Open;
rs.Append;
rs.FieldByName('Datetime').AsDateTime:= now;
rs.FieldByName('Customer').AsString:= Customer;
rs.FieldByName('FileName').AsString:= FName;
rs.FieldByName('FileType').AsString:= FType;
rs.FieldByName('Status').AsString:= '1';

ms:= TMemoryStream.Create;
SOAPAttach.SaveToStream(ms);
TBlobField(rs.FieldByName('FileData')).LoadFromStream(ms);

rs.Post;
rs.Free; //释放
ms.Free;
winnerxcf 2009-09-02
  • 打赏
  • 举报
回复

这是原来的
rs.Open;
rs.Append;
rs.FieldByName('Datetime').AsDateTime:= now;
rs.FieldByName('Customer').AsString:= Customer;
rs.FieldByName('FileName').AsString:= FName;
rs.FieldByName('FileType').AsString:= FType;
rs.FieldByName('Status').AsString:= '1';

ms:= TMemoryStream.Create;
SOAPAttach.SaveToStream(ms);
TBlobField(rs.FieldByName('FileData')).LoadFromStream(ms);

rs.Post;
rs.Free; //释放
ms.Free;
CCC的 2009-09-02
  • 打赏
  • 举报
回复
try
ms:= TMemoryStream.Create;
SOAPAttach.SaveToStream(ms);
MS.seek(0,sobeginning); rs.Append;
TBlobField(rs.FieldByName('FileData')).LoadFromStream(ms);
rs.Post;
finally
ms.free;
end;
de410 2009-09-02
  • 打赏
  • 举报
回复
try
ms:= TMemoryStream.Create;
MS.postion:=0;
SOAPAttach.SaveToStream(ms);
rs.Append;
TBlobField(rs.FieldByName('FileData')).LoadFromStream(ms);
rs.Post;
finally
ms.free;
end;
beifangke 2009-09-02
  • 打赏
  • 举报
回复

ms:= TMemoryStream.Create;
try
MS.postion:=0;
SOAPAttach.SaveToStream(ms);
TBlobField(rs.FieldByName('FileData')).LoadFromStream(ms);
finally
ms.free;
end;

5,388

社区成员

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

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