如何对cache中的数据进行检查 |
尚未結案
|
zwsoft
一般會員 發表:20 回覆:17 積分:10 註冊:2002-11-18 發送簡訊給我 |
|
timhuang
尊榮會員 發表:78 回覆:1815 積分:1608 註冊:2002-07-15 發送簡訊給我 |
Hi, 可能的作法應該是將要 insert 資料前, 先檢驗某欄位是否有重覆. 利用 locate function 來進行即可. 但若是要利用資料感知元件直接操作新增的話就不行了. 必須利用一個 edit 元件讓使用者先輸入要檢查唯一性的該欄位後, 就先進行 locate, 若有找到就提示該值是重覆的, 請重新輸入, 若沒有找到就進行新增資料動作並將該欄位的值填入即可, 如:
if dataset.locate('mykey', Edit1.Text, []) then showmessage('資料重覆') else begin dataset.append; dataset.fieldbyname('mykey').AsString := Edit1.Text; end; |
jiang_xy
一般會員 發表:3 回覆:6 積分:1 註冊:2003-04-30 發送簡訊給我 |
|
timhuang
尊榮會員 發表:78 回覆:1815 積分:1608 註冊:2002-07-15 發送簡訊給我 |
引言: cacheupdates=true情况下,数据根本没有直接存到表里面,你怎莫检查?locate能够检查缓存中的数据吗locate 是針對 dataset 中的資料來作檢查的, 即使是沒有 applyupdate 回資料庫的狀況下也可以. 所以 cacheupdates=true 的情況下, 只要是 dataset 中有的資料, 無論是否是 buffer 中的資料, 都還是可以藉由 locate 來找出的. 有興趣請自行試試! dataset.locate 不是對資料庫, 而是對 local 的 dataset |
zwsoft
一般會員 發表:20 回覆:17 積分:10 註冊:2002-11-18 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |