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

圖片保存問題

答題得分者是:change.jian
cxg
中階會員


發表:116
回覆:192
積分:76
註冊:2004-02-12

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-09-03 14:13:15 IP:61.233.xxx.xxx 未訂閱
我想將BMP或JPG圖片保存在SQL SERVER中的數據表中,字段類型為IMAGE,每次保存時老是提示Invalid BLOB length.請問這是什麽原因。謝謝。
change.jian
版主


發表:29
回覆:620
積分:439
註冊:2003-06-02

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-09-03 15:00:35 IP:61.218.xxx.xxx 未訂閱
請問你連到資料庫用什麼方式?BDE?ADO?dbExpress?
cxg
中階會員


發表:116
回覆:192
積分:76
註冊:2004-02-12

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-09-03 15:05:42 IP:61.233.xxx.xxx 未訂閱
引言: 請問你連到資料庫用什麼方式?BDE?ADO?dbExpress?
用的是BDE。
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-09-03 15:22:52 IP:202.39.xxx.xxx 未訂閱
參考這幾篇看看: http://delphi.ktop.com.tw/topic.php?topic_id=34432 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=20127 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=18997 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=161    -- 歡迎光臨 KTop 研究院! 發表人 - hagar 於 2004/09/03 15:24:57
change.jian
版主


發表:29
回覆:620
積分:439
註冊:2003-06-02

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-09-03 16:09:01 IP:61.218.xxx.xxx 未訂閱
檢查底下的BDE的設定 BLOBS TO CACHE-->一次有多少筆資料到記憶體裡,64 ~ 65536 BLOB SIZE --> 圖檔的大小,以K為單位,32~1000
cxg
中階會員


發表:116
回覆:192
積分:76
註冊:2004-02-12

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-09-09 13:05:29 IP:61.237.xxx.xxx 未訂閱
引言: 檢查底下的BDE的設定 BLOBS TO CACHE-->一次有多少筆資料到記憶體裡,64 ~ 65536 BLOB SIZE --> 圖檔的大小,以K為單位,32~1000
change.jian您好,請問次設置可以通過程序來更改嗎,是不是只能運行BDE后,在BDE中修改,非常感謝。
change.jian
版主


發表:29
回覆:620
積分:439
註冊:2003-06-02

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-09-09 13:45:53 IP:61.218.xxx.xxx 未訂閱
可以,在TDatabase由即可設定,如下:
  Database1.Params.Values['BLOB SIZE']:='1000';
  Database1.Params.Values['BLOBS TO CACHE']:='100';
引言: change.jian您好,請問次設置可以通過程序來更改嗎,是不是只能運行BDE后,在BDE中修改,非常感謝。
cxg
中階會員


發表:116
回覆:192
積分:76
註冊:2004-02-12

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-09-09 14:58:40 IP:61.237.xxx.xxx 未訂閱
引言: 可以,在TDatabase由即可設定,如下:
  Database1.Params.Values['BLOB SIZE']:='1000';
  Database1.Params.Values['BLOBS TO CACHE']:='100';
我試了一下上面的方法,但是不行。我在BDE中直接修改是沒有問題。
cxg
中階會員


發表:116
回覆:192
積分:76
註冊:2004-02-12

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-09-09 15:38:51 IP:61.237.xxx.xxx 未訂閱
引言: 可以,在TDatabase由即可設定,如下:
  Database1.Params.Values['BLOB SIZE']:='1000';
  Database1.Params.Values['BLOBS TO CACHE']:='100';
我試了一下上面的方法,但是不行。我在BDE中直接修改是沒有問題。
change.jian
版主


發表:29
回覆:620
積分:439
註冊:2003-06-02

發送簡訊給我
#10 引用回覆 回覆 發表時間:2004-09-09 16:27:23 IP:61.218.xxx.xxx 未訂閱
可能我沒有說仔細,應該如下:
  Database1.Connected:=False;
  ...
  Database1.Params.Values['BLOB SIZE']:='1000';
  Database1.Params.Values['BLOBS TO CACHE']:='100';
  ...
  Database1.Connected:=True;
cxg
中階會員


發表:116
回覆:192
積分:76
註冊:2004-02-12

發送簡訊給我
#11 引用回覆 回覆 發表時間:2004-09-10 13:55:47 IP:222.35.xxx.xxx 未訂閱
引言: 可能我沒有說仔細,應該如下:
  Database1.Connected:=False;
  ...
  Database1.Params.Values['BLOB SIZE']:='1000';
  Database1.Params.Values['BLOBS TO CACHE']:='100';
  ...
  Database1.Connected:=True;
change.jian您好, 我就是按這種方法試的,但還是謝謝您的耐心指教。
cxg
中階會員


發表:116
回覆:192
積分:76
註冊:2004-02-12

發送簡訊給我
#12 引用回覆 回覆 發表時間:2004-09-11 15:29:58 IP:222.35.xxx.xxx 未訂閱
引言: 可能我沒有說仔細,應該如下:
  Database1.Connected:=False;
  ...
  Database1.Params.Values['BLOB SIZE']:='1000';
  Database1.Params.Values['BLOBS TO CACHE']:='100';
  ...
  Database1.Connected:=True;
VAR CON_DB : TDATABASE; . . . CON_DB.CLOSE; CON_DB.DatabaseName:=DATA_DB; CON_DB.Params.Values['BLOB SIZE']:='1000'; CON_DB.Params.Values['BLOBS TO CACHE']:='100'; CON_DB.Params.Values['USER NAME']:= '123'; CON_DB.params.Values['PASSWORD'] := '123'; CON_DB.LoginPrompt := False; CON_DB.OPEN; . . . //按以下方式保存圖片: QB.CLOSE; QB.DATABASENAME := DATA_DB; QB.SQL.CLEAR; QB.SQL.ADD('INSERT INTO CARDBMP(KH,BMP) VALUES(:F1,:F2)'); QB.ParamByName('F1').ASSTRING := KH; QB.ParamByName('F2').Assign( IMAGE1.Picture.Bitmap); QB.EXECSQL; //按以下方式讀取圖片: QB.CLOSE; QB.DATABASENAME := DATA_DB; QB.SQL.CLEAR; QB.SQL.ADD('SELECT BMP FROM CARDBMP WHERE KH=:F1'); QB.ParamByName('F1').ASSTRING := KH; QB.OPEN; IMAGE1.Picture.Assign( QB.FIELDBYNAME('BMP')); 程序沒有報錯,但圖片有一部分是黑的。但直接修改BDE就沒問題。
change.jian
版主


發表:29
回覆:620
積分:439
註冊:2003-06-02

發送簡訊給我
#13 引用回覆 回覆 發表時間:2004-09-11 16:27:43 IP:218.169.xxx.xxx 未訂閱
我在猜,這是因為您的TDatabase沒有設定Alias Name屬性的關性.您試者在Alias Name裡設定一個可以用的Alias,試試看. 底下是在Online help上找到的相關資料: Params is a list of string items, each representing a different database connection parameter. If the AliasName property specifies a valid BDE alias, then Params automatically contains the parameters defined for that alias. If, instead of providing an alias, an application uses the DriverName property to provide a local alias, the application must provide Params values directly. Note:Applications can use Params to override the default settings supplied by a BDE alias
cxg
中階會員


發表:116
回覆:192
積分:76
註冊:2004-02-12

發送簡訊給我
#14 引用回覆 回覆 發表時間:2004-09-12 16:48:33 IP:222.35.xxx.xxx 未訂閱
問題已經解決,非常感謝change.jian。
系統時間:2024-06-27 3:21:05
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!