保存:
var
  Ms:TFileStream;
Begin
  Ms:=TFileStream.Create(FileName,fmread);
  Table1.Insert
  TBlodField(Table1.FieldByName('FieldName')).LoadFromStream(Ms)
  Table1.Post

解决方案 »

  1.   

    错了,应该是:
    Ms:=TFileStream.Create(FileName,fmopenread)
      

  2.   

    首先非常感謝。
    但是我還是不太明白﹐可不可以再麻煩您寫詳細一點﹖
    假如我現在有一張圖片(C:\004.WMF)
    我具體要怎么做才能把它存到表'TEST_IMAGE'中的'IMAGE'這個字段當中﹖
      

  3.   

      Table1.Insert
      TBlodField(Table1.FieldByName('image')).LoadFromfile('c:\004.wmf')
      Table1.Post
      

  4.   

    試了一下﹐不行
    提示﹕CANNOT OPEN FILE!
      

  5.   

    procedure TForm1.Button1Click(Sender: TObject);
    var f: TFileStream;
    begin
     f := TFileStream.Create('e:\logo.gif', fmOpenReadWrite); with Table1 do begin
         Append();
         //.......
         TBlobField(FieldByName('IMAGE')).LoadFromStream(f);
         Post();
     end; f.Free;
    end;在BDE administrator的Alias设置中设置好Blod的缓存及大小。
      

  6.   

    另外再试试procedure TForm1.Button1Click(Sender: TObject);
    var v: Variant;
        f: TFileStream;
        size: integer;
    begin
     f := TFileStream.Create('e:\logo.gif', fmOpenReadWrite);
     size := f.Size;
     f.Read(v, size); with Table1 do begin
         Append();
         //.......
         FieldByName('IMAGE').AsVariant := v;
         Post();
     end; f.Free;
    end;
      

  7.   

    終于等到你了
    我照你說的試了﹐還是不行﹐
    DELPHI提示錯誤﹕CANNOT OPEN FILE E:\LOGO.GIF!
    為什么是.gif?
    還有我的'IMAGE'字段形態是IMAGE型的,對嗎﹖
    另外我用的是SQLSERVER 7.0
      

  8.   

    试试Tblodfield.loadfromfile(C:\004.WMF),
    另,前几位说的方法应该可以呀,你是否自己没搞对?
      

  9.   

    字段类型改成Binary再试试,字段大小要设置好,不要小了.gif也可以,返正用Stream读出后都是二进制形式的了。
      

  10.   

    我也覺得應該可以﹐可是就是不行。
    我也搞不懂了﹐
    這個問題我研究了3天了﹐都快瘋了﹐
    再重復一遍我的問題吧﹐看看有沒有什么地方沒說清楚的。
    我現在用DELPHI 4 + SQL SERVER 7.0開發系統(或需要用到ADO的時候也可以用DELPHI 5)
    我要把一種后綴名為.WMF的圖檔﹐存到數據庫里面(不能只存路徑﹐因為還要可以用DBimage控件瀏覽)。 我目前的做法是在數據庫里面加一個類型為image(Blob)的字段用來保存圖片,但是
    只能保存*.bmp的圖片.
    照crob和几位高手的方法我也試過了﹐但是也不行。(*.wmf的圖檔為16位的矢量圖﹐不是位圖)
    希望各位高手能再次不吝賜教﹗﹗﹗
    衷心感謝﹗﹗﹗﹗
      

  11.   

    To:Crob
    我設置斷點進行DEBUG﹐結果在
    f := TFileStream.Create('e:\logo.gif', fmOpenReadWrite);
    的時候就執行不下去了。
    WHY???
      

  12.   

    To:Crob
    我現在用﹕
    var f: TFileStream;
    begin
    f := TFileStream.Create('c:\ff.wmf', fmOpenReadWrite);with Table1 do begin
        Append();
        //.......
        TBlobField(FieldByName('IMAGE')).LoadFromStream(f);
        Post();
    end;f.Free;
    end;這種方法運行的時候已經不報錯了﹐
    因為我剛才用的時候﹐C盤下沒有ff.wmf這張圖片﹐現在我手動COPY過去一張
    運行就不出錯了﹐但是總感覺這么做挺奇怪﹐不是已經CREATE了嗎﹖
    而且﹐保存以后也沒辦法通過DBimage控件瀏覽到圖片﹐給人的感覺就象圖片沒存進去。
    究竟什么原因﹐請指教.