全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1368
推到 Plurk!
推到 Facebook!

如何用ado query 存入圖片?

尚未結案
wildchoi
一般會員


發表:8
回覆:15
積分:9
註冊:2003-05-20

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-06-12 02:03:26 IP:218.5.xxx.xxx 未訂閱
如題 用ado query 不知道如何存入圖片 因為不提供asblob 的選項, 無法用sql 語法存入 也曾用TBlobField().LoadFromFile() 方式 可是還是不行(存入之後看看都沒反應,還是沒圖) 哪位大大可以救救我?.....
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-06-12 08:04:29 IP:218.16.xxx.xxx 未訂閱
請參考一下拙作 : 在數據庫以jpeg儲存經規格化的 bmp/jpg 圖片實作示範 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=27715 雖然這是以 TTable 來作但是是使用 TBlobStream 來做的所以應也適用於 ADO
wildchoi
一般會員


發表:8
回覆:15
積分:9
註冊:2003-05-20

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-06-13 03:51:17 IP:218.5.xxx.xxx 未訂閱
blobfield 還是不成 調查過因為ado 不支援blob格式 只能直接用TGraphicField() 來存入
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-06-13 09:00:49 IP:218.16.xxx.xxx 未訂閱
ADO 不是不支援 blob field , 只是存取比較和其他方法不同及多點問題 你可在 google 輸入 Delphi Ado TBlobField 找尋可找到一些資料 如 http://groups.google.com/groups?hl=zh-TW&lr=lang_zh-CN|lang_zh-TW|lang_en&ie=UTF-8&oe=UTF-8&threadm=3c924915_1@dnews 另外你也應在 ADOQuery 的 FieldEditor (雙擊該元件) 裡加入該 Field 看 Delphi 將他定為甚麼 Field,這樣會比較好處理。
邊城浪子
一般會員


發表:2
回覆:2
積分:0
註冊:2003-06-18

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-06-18 16:12:57 IP:211.101.xxx.xxx 未訂閱
提供一斷程式碼供大家參考: THuman=class (TComponent) Private Name:string; IDCard:string; Sex:Byte; Photo:TImage; FQuery:TQuery; FDatabase:TDatabase; - - - publisned property Name:string read FName write FName; property IDCard:string read FIDCard write FIDCard; property Sex:Byte read FSex write FSex; property Photo:TImage read FPhoto write FPhoto; property Query:TQuery read FQuery write FQuery; property Database:TDatabase read FDatabase write FDatabase; function THuman.Insert: Boolean; var Sqlstr:string; lStream:TMemoryStream; lPicture:TJPEGImage; begin lStream:=TMemoryStream.Create; lPicture:=TJPEGImage.Create;// FPhoto为TImage变量,在主界面可以选择一张照片 if FPhoto.Picture.Graphic<>nil then begin lPicture.Assign(FPhoto.Picture.Graphic); lPicture.SaveToStream(lStream); end; if FDatabase.InTransaction then FDatabase.Commit; FDatabase.StartTransaction; Query.Sql.text:= 'Insert Into Human(Name,IDCard,Sex,Photo) values(:Name,:IDCard,:Sex,:Photo)’; Query.ParamByName('Name').asstring:=’邊城浪子’; Query.ParamByName('IDCard').asstring:=Something; Query.ParamByName('Sex').asstring:=Something; Query.ParamByName('Photo').LoadFromStream(lStream,ftBlob); try Query.Prepare; Query.execSQL; Query.Close; FreeAndNil(lStream); FreeAndNil(lPicture); Result:=True; FDatabase.Commit; except FDatabase.Rollback; Query.Close; FreeAndNil(lStream); FreeAndNil(lPicture); Result:=False; end; 最後主要釋放動態生成的LStream 和 LPicture 發表人 - 邊城浪子 於 2003/06/18 16:14:29
系統時間:2024-06-02 0:23:18
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!