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

請問如果使用BDE5.01 + TQuery + Tupdatesql +Oracle 為何存檔資料會遺失

 
daywb
一般會員


發表:4
回覆:7
積分:2
註冊:2002-04-17

發送簡訊給我
#1 引用回覆 回覆 發表時間:2006-08-03 12:05:06 IP:61.220.xxx.xxx 未訂閱

請問如果使用BDE5.01 TQuery Tupdatesql Oracle 將資料存進資料庫時如果第一筆資料某些 Field 的值是 Null

時,則第二筆以後這些 相同 Field 不論是否有值將不會被存進資料庫造成 data lost 這是什麼原因?用 Sql Monitor追蹤過

一切正常且無任何錯誤訊息.

bestlong
站務副站長


發表:126
回覆:734
積分:512
註冊:2002-10-19

發送簡訊給我
#2 引用回覆 回覆 發表時間:2006-08-03 15:42:15 IP:60.248.xxx.xxx 未訂閱
總要列出你的程式碼以及相關設定說明,別人才好判斷你的問題。
------
http://blog.bestlong.idv.tw/
http://www.bestlong.idv.tw/
http://delphi-ktop.bestlong.idv.tw/
daywb
一般會員


發表:4
回覆:7
積分:2
註冊:2002-04-17

發送簡訊給我
#3 引用回覆 回覆 發表時間:2006-08-10 15:36:13 IP:61.220.xxx.xxx 未訂閱

找到解決方法了但不知原因

我把 DBTables.pas 中

procedure TUpdateSQL.ExecSQL(UpdateKind: TUpdateKind);
begin
with Query[UpdateKind] do
begin
//Prepare; --->不需 prepare 就沒問題了
ExecSQL;
if RowsAffected <> 1 then DatabaseError(SUpdateFailed);
end;
end;

daniel
一般會員


發表:12
回覆:20
積分:16
註冊:2002-06-03

發送簡訊給我
#4 引用回覆 回覆 發表時間:2006-08-14 14:18:55 IP:139.223.xxx.xxx 未訂閱

Daywb兄

您的問題也發生在我的team上,正苦於找不出原因,看到您這則訊息,令我振奮不已,希望也能解決我的問題.

不過話說回來,prepare的作用是每次執行SQL指令時對相同SQL指令不需重覆作Parsing的動作,

以提昇效能,為什麼會跟掉欄位資料扯上關係,不過我會try try看的問題是否解決.Thanks.

如果有那位先進也有發生掉欄位資料現象希望也能回響一下,分亨您的解決經驗給大家

daywb
一般會員


發表:4
回覆:7
積分:2
註冊:2002-04-17

發送簡訊給我
#5 引用回覆 回覆 發表時間:2006-08-15 11:36:58 IP:61.220.xxx.xxx 未訂閱

記得需把DBTables.dcu 也需更新

會發生這個問題 我猜是BDE在第一次 parsing 時把null fields 去掉導致後來得records用原來parsing指令就造成 data lost 以上是我的猜想不一定對

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