怎样用image1:Timage 把图片存入表Timage表的pic字段,字段类型是BLOB;
    
image1.Picture.LoadFromFile('D:\pic12.jpg');
st_sql='???????怎么写啊'          
adoq_updata.SQL.Add(str_sql);

解决方案 »

  1.   

    procedure SavePicByField(Ime: TTisImage; Field: TField);
    var
      Mem :TMemoryStream;
    begin
      if assigned(Ime.Picture.Graphic) then
      try
        Mem := TMemoryStream.Create;
        Ime.Picture.Graphic.SaveToStream(Mem);
        Mem.Position := 0;
        Field.DataSet.Edit;
        TBlobField(Field).LoadFromStream(Mem);
      finally
        Mem.Free;
      end;
    end;
      

  2.   

    参考一下
    http://community.csdn.net/Expert/TopicView.asp?id=4704987对你有帮助
      

  3.   

    procedure TForm1.Button1Click(Sender: TObject); // 插入图片过程
    var
      Stream:TMemoryStream;
    begin
      try
        Stream := TMemoryStream.Create; //  创建内存流
        Image1.Picture.Graphic.SaveToStream(Stream);   // 将图片保存到内存流中
        adoquery1.Close;
        adoquery1.SQL.Clear;
        adoQuery1.SQL.Add('Insert into tbltemp (Image) values (:photo)');    // 进行插入操作
        adoQuery1.Parameters.ParamByName('photo').LoadFromStream(Stream,ftBlob); // 读取保存的内存图
        adoquery1.ExecSQL;
      finally
        Stream.Free;     // 释放内存流
      end;
    end;procedure TForm1.Button2Click(Sender: TObject); //读取图片过程
    var
      Stream:TMemoryStream;
      Jpg:TjpegImage;
    begin
      ADOQuery1.Close;
      ADOQuery1.SQL.Text:='SELECT * FROM tbltemp';   // 查询图片
      ADOQuery1.Open;
      if not ADOQuery1.FieldByName('Image').IsNull then 
      begin 
        Stream:=TMemoryStream.Create ;
        Jpg:=TjpegImage.Create ;
        TBlobField(ADOQuery1.FieldByName('Image')).SaveToStream(Stream);    // 显示的转换为BlobField并保存到内存流
        Stream.Position :=0;
        jpg.LoadFromStream(Stream);    // 加载图片
        image2.Picture.Assign(Jpg);
      end
      else 
      begin
        image2.Picture :=nil;
      end;
    end;看看吧
      

  4.   

    先谢谢楼上各位;我在运行当中出“ORA-01026L赋值列表中存在多个大小>4000的缓冲区"的错误;楼上能否告诉在ORCAL怎么增大缓冲区,还是其它原因引起的?
      

  5.   

    有关ORA-01026问题我新开了贴,还请楼上的帮忙看一下;
      

  6.   

    TBlobField(Field).LoadFromStream(Mem);只能保存BMP,怎么能保存JPG?试问楼上的。