要用到Blob字段,最好同时用数据流作为媒介写入Blob的代码如下:  
 
Query.SQL.Clear;  
Query.Sql.Add('INSERT  INTO  表名  (...,Blob字段名,...)  VALUES  (...,:Blob,...)');      
Query.ParamByName(Blob)).LoadFromStream(Stream);  
//还可以用方法LoadFromFile()直接保存文件中的数据  
Query.SQL.ExecSQL; 从字段读出代码如下:  
             
Query.Close;  
Query.SQL.Clear;  
Query.SQL.Add('SELECT  ...,Blob字段名,...  FROM  表名 WHERE  ...');  
Query.Open;  
TBlobField(Query.SQL.FieldByName(Blob字段名)).SaveToStream(Stream);  
//或(Query.ParamByName(Blob字段名)  as  TBlobFiedl).SaveToStream(Stream);  
//或Stream=TBlobFieldStream.Create(TBlobField(Query.SQL.FieldByName(Blob字段名)),bmRead);  
//保存到文件用SaveToFile(文件名)  更多参考请看这里:http://www.csdn.net/expert/topic/960/960982.xml?temp=.7559626

解决方案 »

  1.   

    这里还有一个li例子//选择图象文件,添加含有图象数据的记录
    procedure TForm1.Button3Click(Sender: TObject);
    var
    fn: string;
    begin
      if OpenDialog1.Execute then begin //打开文件
        fn := OpenDialog1.FileName;
        //显示图象
        Image1.Picture.loadfromfile(fn);
        // 图象文件添加到库表中
        table1.Append ;
        Table1FileName.AsString := ExtractFileName(fn);
        Table1Blob.assign(image1.picture);
        table1.Post ;
      end;end;//显示数据库中保存的图片
    procedure TForm1.Table1AfterScroll(DataSet: TDataSet);
    begin
      if not Table1Blob.IsNull then begin
        Image1.Picture.assign(table1Blob);
      end;end;