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

FetchBlobs 的問題

答題得分者是:Justmade
kcdavid
一般會員


發表:8
回覆:3
積分:2
註冊:2002-09-06

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-04-24 10:21:10 IP:211.21.xxx.xxx 未訂閱
請問各位先進: 小弟目前有一個客戶基本資料的Table,裡面有一個放客戶相片的blob field,目前這個Table有500筆的資料,而且相片的欄位都有圖片。如果一次查詢全部的資料程式會run不出來,於是將ClientDataset.PacketSize設定成10,而不用-1。但是在查詢時一直按下一筆在接近100筆左右就會出現記憶體不足的情形。於是又將ClientDataset.FetchOnDemand設成False,並在Tprovider.option加入poFetchBlobsOnDemand但是需要自己用ClientDataSet的FetchBlobs去將blob資料抓出來。但是不知道要如何使用FetchBlobs,不知道有沒有那一位先進會使用的,請指點一二。 Server 端使用WIN2K sql server,Client 端使用Win-XP Ram 128 MB。
Justmade
版主


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-04-24 10:33:50 IP:218.16.xxx.xxx 未訂閱
即使使用 fetchBlobs 也不是好方法一樣會在使用後佔用記憶體的,而且中間層還是到數據庫讀取用不到的BLOB浪費時間資源。 較好的方法是使用兩個Query。第一個只選取blob以外的資料。 當需要顯示圖片時用另一個 Query 選出該圖片,這樣記憶體裡同一時間只會有一張圖片使用起來也較易,也節省回中間層讀BLOB的資源。
kcdavid
一般會員


發表:8
回覆:3
積分:2
註冊:2002-09-06

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-04-24 11:27:28 IP:211.21.xxx.xxx 未訂閱
引言: 即使使用 fetchBlobs 也不是好方法一樣會在使用後佔用記憶體的,而且中間層還是到數據庫讀取用不到的BLOB浪費時間資源。 較好的方法是使用兩個Query。第一個只選取blob以外的資料。 當需要顯示圖片時用另一個 Query 選出該圖片,這樣記憶體裡同一時間只會有一張圖片使用起來也較易,也節省回中間層讀BLOB的資源。
如果用兩個query 如何做新增及修改資料??目前使用clientdataset處理新增及修改、刪除作業。
Justmade
版主


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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-04-24 12:27:19 IP:218.16.xxx.xxx 未訂閱
簡單的query一樣能自動更新的,只是新增記錄時要先新增主 Query, 再在次Query 讀回剛才新增的空 BLOB Field 後將 圖片存入。修改刪除時記得兩個 CDS 都 Applyupdate 便可,次Query 的 DataSetProvider Updatemode 要選 upWhereKeyOnly。
系統時間:2024-06-17 2:20:22
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!