我建了一个.db文件   然后用table控件打开,用dbimage存取bmp文件都没有问题
但如果用dbimage打开jpeg文件,可以显示出来,当运行table1.post时就不行了
能教我如何用db文件存储jpeg图是否一定要换成bmp才能存?

解决方案 »

  1.   

    delphi本身带的dbimage控件是存不了.jpg格式的文件,你可以通过数据流的方式把图片存放进去或读出来,另外也可以用1stclass3000组件里的dbimage可以存放.jpg格式.
    uses jpeg;
      

  2.   

    DBImage 控件只能显示bmp图片数据,jpg的不能用DBImage . 
    关于jpg的数据存取,可以先将其转为流,然后将其存入Blob数据库。 
    读出时,过程相反 
    Image1.Picture.Graphic.loadfromstream(ms); 
    写入: 
    //************************************ 
    var  
      MS: TMemoryStream;  
    begin  
      MS:=TMemoryStream.create;  
      Image1.Picture.Graphic.SaveToStream(MS);  
      MS.Position:=0;  
      Table1.Append;     
     //在数据库中添加一条记录  
      TBlobField(Table1.FieldbyName  
    ('image')).LoadFromStream(MS);  
      Table1.Post;         
    //将所作的更新写入数据库  
    end; 
    //************************** 
    读出: 
    //************************* 
    var  
      MS: TStream;  
    begin  
      with Table1 do  
      MS:=CreateBlobStream  
    (FieldbyName('image'),bmRead);  
      Image1.Picture.Graphic.  
    LoadFromStream(MS);  
      MS.Free;  
    end;