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

dbEdit 元件有個很奇怪的問題

答題得分者是:GrandRURU
it1506
初階會員


發表:33
回覆:89
積分:49
註冊:2011-02-16

發送簡訊給我
#1 引用回覆 回覆 發表時間:2012-12-12 14:10:36 IP:59.120.xxx.xxx 未訂閱
我寫的一個程式在一台 windows xp sp3 的電腦上 , 目前只發現那台XP會這樣, 試了其他3台xp電腦還沒有這種情況

該dbedit元件有個很奇怪的現象
我先說一下連結資料的方式:

adoconnection ->AdoDataSet ->datasetProvider ->ClientDataSet ->Datasouce ->dbedit

這樣是避免user在前端改資料時,後端資料同步變動,

連的是sqlserver 2005 ,欄位型態是 numric(6,3)

當帶出來的資料是有小數點 2位以上時 例如 2.33

如果這時我把該欄位2.33改成 1.2 跳到別的欄位時

那個1.2就會自己補上0.03 會變成1.23 ,

經測試, 若該欄帶出的資料有超過2位小數時,它會自己記住百分位跟千分位的數字

也就是當帶出 2.345時, 你若去改成3 ,然後跳到別的欄位, 它會自動變成 3.045

屢試不爽.....

這程式完全沒有用event , 資料寫入刪除修改帶出完全用 sql語法
所以在資料都在前端亂改是沒差的, 後端資料根本沒動.
詭異的地方就是那個數字欄位為何會這樣??
這樣要怎麼除錯啊.....

GrandRURU
站務副站長


發表:240
回覆:1680
積分:1874
註冊:2005-06-21

發送簡訊給我
#2 引用回覆 回覆 發表時間:2012-12-13 17:25:52 IP:59.120.xxx.xxx 未訂閱
不一定需要DataSnap元件,而且ADO和DataSnap本身就不怎麼相容

而且,TADODataSet裡面有個「LockType」屬性,指定為「ltBatchOptimistic」
如此就可以達到你的要求了

===================引 用 it1506 文 章===================
我寫的一個程式在一台 windows xp sp3 的電腦上 , 目前只發現那台XP會這樣, 試了其他3台xp電腦還沒有這種情況

該dbedit元件有個很奇怪的現象
我先說一下連結資料的方式:

adoconnection ->AdoDataSet ->datasetProvider ->ClientDataSet ->Datasouce ->dbedit

這樣是避免user在前端改資料時,後端資料同步變動,

連的是sqlserver 2005 ,欄位型態是 numric(6,3)

當帶出來的資料是有小數點 2位以上時 例如 2.33

如果這時我把該欄位2.33改成 1.2 跳到別的欄位時

那個1.2就會自己補上0.03 會變成1.23 ,

經測試, 若該欄帶出的資料有超過2位小數時,它會自己記住百分位跟千分位的數字

也就是當帶出 2.345時, 你若去改成3 ,然後跳到別的欄位, 它會自動變成 3.045

屢試不爽.....

這程式完全沒有用event , 資料寫入刪除修改帶出完全用 sql語法
所以在資料都在前端亂改是沒差的, 後端資料根本沒動.
詭異的地方就是那個數字欄位為何會這樣??
這樣要怎麼除錯啊.....

it1506
初階會員


發表:33
回覆:89
積分:49
註冊:2011-02-16

發送簡訊給我
#3 引用回覆 回覆 發表時間:2012-12-22 09:30:08 IP:59.120.xxx.xxx 未訂閱
後來我解決這個問題了

midas.dll 版本不一樣的關係

換過去就變好了... = =

真的很莫名其妙


系統時間:2024-11-21 21:40:37
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!