首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

一个用DBImage1读取图片出Stream read error错的有关问题

2012-04-08 
一个用DBImage1读取图片出Stream read error错的问题我用ClientDataSet1来insert一张bmp图片进数据库代码

一个用DBImage1读取图片出Stream read error错的问题
我用ClientDataSet1来insert一张bmp图片进数据库代码如下

var
Stream:TMemoryStream;
begin



  try
  Stream := TMemoryStream.Create; // 创建内存流
  DBImage1.Picture.Graphic.SaveToStream(Stream); // 将图片保存到内存流中
  ClientDataSet1.close;
  ClientDataSet1.CommandText :='Insert into student (image1) values(:_card_image1)'; 
  ClientDataSet1.Params.ParamByName('_card_image1').LoadFromStream(Stream,ftBlob); // 读取保存的内存图
  ClientDataSet1.Execute;
  finally
  Stream.Free; // 释放内存流
end;


因为我必须要用Insert语句来实现插入图片的方法所以我找到了这个方法,但奇怪的是我保存的时候没出错,但是用DBImage1读取图片出Stream read error错,这是何原因,麻烦各位大哥帮忙看看,小弟万分感谢!

[解决办法]
LoadFromStream前加Stream.Position:=0

另:DBImage是感知控件,不用转换就能显示了
[解决办法]
不执行SQL提交,以

Delphi(Pascal) code
with ClientDataSet1 do  begin  Append;  FieldByName('imgid').Asstring := 1;  TBlobField(FieldByName('imgsize')).LoadFromFile(FileName);  Post;  end;
[解决办法]
TBlobField(ClientDataSet1.Params.ParamByName('_card_image1')).LoadFromFile();

用这个试试,不知道可不可行
[解决办法]
DBImage1.Picture.Graphic.SaveToStream(Stream); // 将图片保存到内存流中
DBImage1有没有图片?改成添加用Image,显示用DBImage(DBImage只显示bmp)

取图片是怎么取的?DBImage不用写代码,只关联datasource,dataset即可

热点排行