用TBlobField。可在Delphi的帮助中敲入该关键字查找。

解决方案 »

  1.   

    用TDBIMAGE控件可以直接显示和存入和显示表中的图片。若要自己来实现,就得用流:
    TMemoryStream;
    要点如下:
    var
      ms:TMemorystream;
    begin
      ms:=Tmemorystream.create;
      TBlobfield(query1.fieldbyname('')).savetosteam(ms); 
      ms.position:=0;
      //然后用你要用来显示图片的控件来导入它:控件。loadfromstream(ms);
      ms.free;
     end;
      

  2.   

    采用blob字段!
    下面是一个网友的贴子:
    读:
    TBlobField * pField=(TBlobField *)pQuery->FieldByName("Image");
    TBlobStream * pmem=new TBlobStream(pField,bmRead);
    pmem->Seek(0,soFromBeginning);
    Graphics::TBitmap * pBitmap=new Graphics::TBitmap();
    pBitmap->LoadFromStream(pmem);
    Image1->Picture->Assign(pBitmap);
    delete pBitmap;
    delete pmem;
    写:
    TBlobField * pField=(TBlobField *)pQuery->FieldByName("Image");
    TBlobStream * pmem=new TBlobStream(pField,bmWrite);
    pmem->Seek(0,soFromBeginning);
    Graphics::TBitmap * pBitmap=new Graphics::TBitmap();
    pBitmap->Assign(Image1->Picture->Graphic);
    pBitmap->SaveToStream(pmem);
    delete pBitmap;
    delete pmem;
    pField->Post();注意:一定要用此方法进行读写,因为实际上它是以二进制流的方式存入数据库!  
    1.先求当前记录的BLOB字段的对象:
      TBlobField * pField=(TBlobField *)pQuery->FieldByName("Image");
    2.从对象指针,建它的流指针:
      TBlobStream * pmem=new TBlobStream(pField,bmRead、bmWrite、bmReadWrite);
      有了大字段的流,什么都好办了;
    3.pmem->SaveToFile("另一文件");
      bitmap1->LoadFromStream(pmem);等, 流操作很丰富;