1.读
  TBlobField(qryTemp.fieldbyname('字段名称')).SavetoFile(文件名);
  或 TBlobField(qryTemp.fieldbyname('字段名称')).SavetoStream(stream);
2.存  
  TBlobField(qryTemp.fieldbyname('字段名称')).loadfromFile(文件名);
  或 TBlobField(qryTemp.fieldbyname('字段名称')).loadfromStream(stream);
  qryTemp.post;

解决方案 »

  1.   

    ///Read
    TBlobField *pField=(TBlobField *)Query->FieldByName("字段名");
    TBlobStream *pStream=new TBlobStream (pField,bmReadWrite);
    pmem->Seek(0,soFromBeginning);
    Graphics::TBitmap *pBitmap=new Graphics::TBitmap();
    pBitmap->LoadFromStream(pStream);//读delete pBitmap;
    delete pStream;////Write
    Query->Edit();
    TBlobField * pField=(TBlobField *)Query->FieldByName("字段名");
    TBlobStream * pStream=new TBlobStream (pField,bmReadWrite);
    pStream->Seek(0,soFromBeginning);pBitmap->SaveToStream(pStream);//写delete pStream;
    Query->Post();
      

  2.   

    不好意思这是C++的,改一下就行了。写的时候注意要先DELETE PSTREAM再POST()
      

  3.   

    我以前用Table实现过,但是发现的问题是,当图象的分辨率大了之后,Image也会很大。
    现在用这个方法可以成功。即,把IMAGE当作Blob字段来处理。这样,可使存储图象的字段长度与文件一样大。写IMAGE
        with Query1 do
        begin
            sql.clear;
            sql.add('INSERT INTO TBIMAGE(id,filename,image) VALUES(1,:filename,:IMAGE)');
            params[0].AsString := OpenPictureDialog1.FileName;
            params[1].LoadFromFile(OpenPictureDialog1.FileName,ftGraphic);
            execsql;
        end;
    读Image,我现在是把它放在文件中,之后处理就非常方便了
    var
        t:TBlobField;
    begin
        with Query1 do
        begin
            sql.Clear;
            sql.Add('select id,filename,image from tbimage');
            open;
            while not eof do
            begin
                SavePictureDialog1.InitialDir := ExtractFilePath(FieldByName('filename').AsString);
                if SavePictureDialog1.Execute then
                begin
                    t := FieldByName('IMAGE') As TBlobField;
                    t.SaveToFile(SavePictureDialog1.FileName);
                end;
                next;
            end;
        end;
      

  4.   

    ADOTable.FieldByName('IMAGE').assign(IMAGE1.PICTURE);