線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2344
推到 Plurk!
推到 Facebook!

clientdataset.Delta使用上的二個問題

缺席
jackiemi2_seed
中階會員


發表:37
回覆:97
積分:76
註冊:2006-09-11

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-06-01 14:22:30 IP:211.74.xxx.xxx 訂閱
問題一:
因無修改資料時,執行cd2.Data:=cd1.Delta;會有問題
所以必須用
if cd1.ChangeCount<=0 then判斷是否有修改資料
當有修改資料,但游標沒有移開目前的資料行,
cd1.ChangeCount的值還是0
如附件程式,item='123'的值修改,
如果游標沒有移到456,則cd1.ChangeCount的值還是0
如何解決這個怪問題????

問題二:
當item='123'的qty值由100改成200時
執行delta會出現
123,100,test1
,200,
當item='123'的qty值由100改成200且memo值由test1改成空白時
執行delta會出現
123,100,test1
,200,
如何判斷memo欄位是未修改還是新值為空白???
除了到cd1捉memo欄位的值,有其他方法嗎??
thanks
p.s.附件程式的save會有問題,access的文字欄位在save一直會有問題
但在ms sql就不會
------
OS : Win 7 pro
Program : Delphi 7
DataBase : Ms Sql 2008
附加檔案:4842402615ad8_delphi.rar
編輯記錄
jackiemi2_seed 重新編輯於 2008-06-01 14:24:29, 註解 無‧
jackiemi2_seed
中階會員


發表:37
回覆:97
積分:76
註冊:2006-09-11

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-06-06 23:13:25 IP:203.70.xxx.xxx 訂閱
找到方法了...

1.判斷是否有修改
try
cd2.Data:=cd1.Delta;
cd2.First;
except
ShowMessage('空的, 沒有異動資料');
exit;
end;
2.判斷文字型態資料改成空白
if not(VarIsEmpty(cd2.fieldbyname('memo').NewValue)) then
memo:=cd2.fieldbyname('memo').Value;
判斷cd2狀態在Modified時,使用.NewValue,判斷每一個欄位是否有修改
真:未修改
假:有修改
------
OS : Win 7 pro
Program : Delphi 7
DataBase : Ms Sql 2008
編輯記錄
jackiemi2_seed 重新編輯於 2008-06-06 23:19:43, 註解 無‧
系統時間:2024-04-26 6:05:32
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!