设计了一个表,其中一个字段设置成ole对象。
如何用delphi将一个图片存贮到这个字段?

解决方案 »

  1.   

    procedure TForm1.Button1Click(Sender: TObject);
    {}var
      MS: TMemoryStream;
    begin
      RichEdit1.Font.Color := Clred;
      MS:=TMemoryStream.create;
      RichEdit1.Lines.LoadFromStream(MS);
      MS.Position:=0;
      ADOQuery1.Append;
      TBlobField(ADOQuery1.FieldbyName
        ('Doc')).LoadFromStream(MS);
      ADOQuery1.Post;
    end;  }  with ADOQuery1 do
      begin
        Edit;
        FieldByName('doc').AsString := RichEdit1.Text;
        Post;
      end;      function blobcontenttostring(const filename: string):string;
      begin
        with tfilestream.create(filename,fmopenread) do
          try
           setlength(Result,size);
           read(Pointer(Result)^,size);
         finally
           free;
         end;
      end;
    //保存字段
    var
      sFileName : String;
    begin
      RichEdit1.Font.Color := ClRed;
      RichEdit1.Lines.SaveToFile('C:\aaa.rtf');
      if (opendialog1.execute) then
      begin
        sFileName:=OpenDialog1.FileName;
        adoquery1.edit;
        adoquery1.fieldbyname('doc').asstring:=Blobcontenttostring(sFileName);
        adoquery1.post;
      end;
    end;procedure TForm1.Button2Click(Sender: TObject);
    var
      MS: TStream;
    begin
      ADOQuery1.First;
      with ADOQuery1 do
       MS:=CreateBlobStream
        (FieldbyName('Doc'),bmRead);
        RichEdit2.Lines.LoadFromStream(MS);
      MS.Free;
    end;procedure TForm1.Button3Click(Sender: TObject);
    begin
      ADOQuery1.Next;
    end;你要是加个uses 
      Jpeg的话,好像可以直接存取
      

  2.   

    uses Jpeg;
    .....
    var v_a:TJPEGImage;
    begin
      v_a:=tjpegimage.Create;
      v_a.LoadFromFile('c:\aaa.jpg');
      adoquery1.edit;
      adoquery1.fieldbyname('photo').assign(v_a);
      adoquery1.post;
    end;
      

  3.   

    微斯人:你的例子是不是存储jpeg的?
    小别:为什么你的例子总是提示是bitmap?