我想把IMAGE组件中的图片存在sql server中的image字段中
我请问怎摸半,我用的ADO组件

解决方案 »

  1.   

    可以用TBlobField来做呀!如:
    //存
    ADOTable.Edit;
    TBlobField(ADOTable.FieldByName('PIC')).LoadFromFile('D:\1.bmp');
    ADOTable.Post;
    //取
    var 
     MemStrm:TMemoryStream;
    begin
      MemStrm:TMemoryStream.Create;
      try
        TBolbField(ADOTable.FieldByName('PIC')).SaveToStream(MemStrm);
        MemStrm.Position:=0;
        Image1.Picture.LoadFromStream(MemStrm);
      finally
        MemStrm.Free;
      end;
    end;
      

  2.   

    var MS: TMemoryStream; J1: TJPEGImage;
    begin
         MS := TMemoryStream.Create;    //创建一个内存流
         J1 := TJPEGImage.Create;  with adotable1 do
        begin
           Append;
           J1.Assign(Image1.Picture);
           J1.SaveToStream(MS);
           adotable1md_bmp.LoadFromStream(MS);
           Post;
         end;
         MS.Free;
         J1.Free;
    end;//还有从剪贴板中的图像写入表中
    uses clipbrd
    var
      bp: tbitmap;
      fs: tmemorystream;
      s: string;
    begin
     with adotable1 do
     begin
      if  Clipboard.HasFormat(CF_bitmap) then
        begin
          Append;
          bp := tbitmap.create; 
          fs := tmemorystream.create;
          bp.Assign(clipboard);  
          bp.SaveToStream(fs);
          setlength(s, fs.size);
          fs.position:=0;
          fs.readbuffer(pointer(s)^, fs.size);
          adotable1md_bmp.LoadFromStream(fs);
          post;
        end 
        else
           showmessage('剪贴板中没有图像');
     end;
    end;
      

  3.   

    blazingfire(烈焰)(正在思考的流浪汉...) 老兄好久都没见到了,最近可好啊,我现在在郑州实习呢,有空聊聊啊!