我的表中只有一个名为image1的image字段
var
 picture1:TPicture;
begin
 picture1:=TPicture.Create ;
 ADOTable1.Edit;
 Picture1.LoadFromFile('.\image\770ft.bmp');
 DBImage1.Picture:=Picture1; //问题1、我将上面的BMP文件改成ICO文件,DBImage2中就没有显示了,是不是它不支持ico
 ADOTable1.FieldByName('image1').Assign(Picture1);
 ADOTable1.post;
 image1.Picture :=ADOTable1.FieldByName('image1').value; // 问题2、我想从数据库中取出image数据,但是用这条语句不行,说是
                                                         //‘TPicture'和'Variant’类型不匹配,我要怎样才能达到目的呢
end;

解决方案 »

  1.   

    问题2:
       用流来读取
    var
      FileSource : Tstream;
      adoquery1.Open;
    FileSource:=CreateBlobStream(FieldbyName('xx'),bmRead);
    image1.Picture.Bitmap.LoadFromStream(filesource);
    filesource.Free;
      

  2.   

    你这样试试,我以前的程序改过来的  
    adotable.(FieldByName('image1') AS TBlobField).SaveToFile(ExtractFilePath(Application.ExeName)+'Temp.bmp');
      Image1.Picture.LoadFromFile(ExtractFilePath(Application.ExeName)+'Temp.bmp');