保存:
var
Ms:TFileStream;
Begin
Ms:=TFileStream.Create(FileName,fmread);
Table1.Insert
TBlodField(Table1.FieldByName('FieldName')).LoadFromStream(Ms)
Table1.Post
var
Ms:TFileStream;
Begin
Ms:=TFileStream.Create(FileName,fmread);
Table1.Insert
TBlodField(Table1.FieldByName('FieldName')).LoadFromStream(Ms)
Table1.Post
Ms:=TFileStream.Create(FileName,fmopenread)
但是我還是不太明白﹐可不可以再麻煩您寫詳細一點﹖
假如我現在有一張圖片(C:\004.WMF)
我具體要怎么做才能把它存到表'TEST_IMAGE'中的'IMAGE'這個字段當中﹖
TBlodField(Table1.FieldByName('image')).LoadFromfile('c:\004.wmf')
Table1.Post
提示﹕CANNOT OPEN FILE!
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的缓存及大小。
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;
我照你說的試了﹐還是不行﹐
DELPHI提示錯誤﹕CANNOT OPEN FILE E:\LOGO.GIF!
為什么是.gif?
還有我的'IMAGE'字段形態是IMAGE型的,對嗎﹖
另外我用的是SQLSERVER 7.0
另,前几位说的方法应该可以呀,你是否自己没搞对?
我也搞不懂了﹐
這個問題我研究了3天了﹐都快瘋了﹐
再重復一遍我的問題吧﹐看看有沒有什么地方沒說清楚的。
我現在用DELPHI 4 + SQL SERVER 7.0開發系統(或需要用到ADO的時候也可以用DELPHI 5)
我要把一種后綴名為.WMF的圖檔﹐存到數據庫里面(不能只存路徑﹐因為還要可以用DBimage控件瀏覽)。 我目前的做法是在數據庫里面加一個類型為image(Blob)的字段用來保存圖片,但是
只能保存*.bmp的圖片.
照crob和几位高手的方法我也試過了﹐但是也不行。(*.wmf的圖檔為16位的矢量圖﹐不是位圖)
希望各位高手能再次不吝賜教﹗﹗﹗
衷心感謝﹗﹗﹗﹗
我設置斷點進行DEBUG﹐結果在
f := TFileStream.Create('e:\logo.gif', fmOpenReadWrite);
的時候就執行不下去了。
WHY???
我現在用﹕
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控件瀏覽到圖片﹐給人的感覺就象圖片沒存進去。
究竟什么原因﹐請指教.