用流和TblobField对象.(我也不太清楚)

解决方案 »

  1.   

    大概内容我都清楚,现在只要一段代码了,
    比如我要存储的图片是在c:\a.bmp,如何存进数据库。
      

  2.   

    TBlobField(AdoTable1.FieldByName('picture')).LoadFromFile('c:\a.bmp');
      

  3.   

    type
      tblimage:TBlobField;//用fields editor添加blob字段类型组件
    procedure......
    begin
      if (table1.state=dsinsert) or (table1.state=dsedit) then
        tblimage.loadfromfile('c:\a.bmp');//添加
    end;
      

  4.   

    如果我想用query,用sql进行插入呢?
    语句该怎么写?
      

  5.   

    Query1.Close;
    Query1.SQL.Clear;
    Query1.SQL.Add('insert into Pic values(:Pic)');
    Query1.Parameters.ParamByName('Pic').Assign(Image1.Picture.Bitmap);
    Query1.ExecSQL;
      

  6.   

    在powerbuilder的书上看到一个说明,用sql语句来插入blob字段
    要用update语句.我明天给你查查.
      

  7.   

    实际上这个问题比较复杂,因为INSERT语句不能处理大于8K限制的数据行,实际上8K也是数据页
    的大小限制,现在我正查关于图象数据的更新,好象利用到updatetext,writetext,readtext,
    至于BLACKFILES的做法是不能突破此限制的,但是可以利用BLOBFIELD来更新,但就不是用
    SQL语句了,不知道DELPHI如何构造SQL的  
      

  8.   

    首先对BLACKFILS说声对不起,因为他的做法是正确的,本人学艺不精,惭愧。但是要补充的一点是,利用BDE来更新BLOB字段,会受到两个属性的限制:BLOB SIZE 以及 BLOBS TO CACHE ,我将两个属性设为4096,
    反正存储一兆多的图片没问题,如果存更大的图片可以改的更大,]
    当设置不能处理的时候 ,DELPHI 会出现异常:INVALID BLOB LENGTH我在本机上实验没问题