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

資料存檔時會發現資料列被更新的問題!

尚未結案
weiliching
初階會員


發表:53
回覆:78
積分:31
註冊:2003-12-27

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-04-14 18:08:09 IP:210.243.xxx.xxx 未訂閱
我是Oracle 8i ..Delphi 7.0 去開發. 我只是寫一段很簡單的類似這種語法 AdoQuery1.Edit; AdoQuery1.FieldByName('M_Data').AsInteger := 0;  AdoQuery1.post;    第一次Run 是沒問題..但是只是連續執行兩次就會出現錯誤! 錯誤如圖 此問題我曾經在sql server 也遇到過.但是這不知是資料庫問題,還是Delphi問題!謝謝大大解惑!
Wesly
中階會員


發表:14
回覆:103
積分:53
註冊:2002-05-31

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-04-14 18:26:16 IP:60.248.xxx.xxx 未訂閱
這應該是同一筆資料被異動所產生的訊息,如果你確認資料沒有被其他人更改。 依個人的經驗應該是的回填值經過比對發現不相同,大多是在SQL Server定義的欄位型態為Float, 如果你用的資料庫引擎為BDE時, 因為BDE的有效長度最長為15碼, 但Float的型態在MS SQL為46碼長, 在小數點長度可能產生比對不合的問題, 但你所給的樣本為Integer, 所以似乎不合, 提供給你參考.
supman
尊榮會員


發表:29
回覆:770
積分:924
註冊:2002-04-22

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-04-14 18:26:53 IP:61.70.xxx.xxx 未訂閱
您好: 這表示您的那一筆資料已經被某個程式給改變了,所以您Select回來修改後,當要Post回去時,SQL Server會找不到原本您要更新的那筆資料. 發表人 - supman 於 2005/04/14 18:35:40
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-04-14 21:54:13 IP:218.32.xxx.xxx 未訂閱
ADO 比較少碰... 找找看是否有...類似
weiliching
初階會員


發表:53
回覆:78
積分:31
註冊:2003-12-27

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-04-15 08:42:00 IP:210.243.xxx.xxx 未訂閱
我可以確定沒有其他人改.我的資料庫是Oracle 8i. 因為資料庫是我自己一個人在Test用, 只是我連續執行兩次Edit 指令就會出現這種問題, 很怪..我沒有用BDE,是用ADO... 宗歸以上的問題,表示有可能是Ado 本身出的問題. 問題點在資料的狀況不大嗎?
weiliching
初階會員


發表:53
回覆:78
積分:31
註冊:2003-12-27

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-04-15 08:48:56 IP:210.243.xxx.xxx 未訂閱
我列出我所有欄位給大大看..這是除了M_Order_No 沒有更新外, 其他我全都有更新.! 只是連續更新個兩次就會出問題. 且Ado 好像沒有UpdateMode的屬性. 只有Lock type 屬性! 名稱 空值? 類型 ----------------------------------------- -------- -------------- M_ORDER_NO NOT NULL VARCHAR2(9) M_H CHAR(1) M_CUSTOM_NO VARCHAR2(4) M_CUSTOM VARCHAR2(10) M_DATE DATE M_LOCAL_TRADE CHAR(1) M_CURRENCY CHAR(3) M_RATE NUMBER(4,2) M_TRUST CHAR(1) M_EXPENSE_KIND CHAR(1) M_EXPENSE NUMBER(10) M_DELIVERY_DATE DATE M_CLOSE CHAR(1) M_SALES CHAR(3) M_ASSISTANT CHAR(3) M_FASHION VARCHAR2(10) M_PAYWAY CHAR(1) M_DAY NUMBER(2) M_VIA VARCHAR2(10) M_SHIP_FROM VARCHAR2(10) M_SHIP_TO VARCHAR2(10) M_TERMS VARCHAR2(10) M_REMARK VARCHAR2(50) M_REMARK2 VARCHAR2(50) M_PO VARCHAR2(20) M_ENTRUST_NO NUMBER(8) M_BACK VARCHAR2(20) M_PAY_DATE DATE
pillar62
資深會員


發表:9
回覆:324
積分:271
註冊:2002-04-15

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-04-15 08:59:56 IP:210.64.xxx.xxx 未訂閱
你好 是否可以比較詳細的列出程式呢?因為我用你說的方式開一個query去作edit,post的動作,作n次都沒有問題耶??? Pillar Wang
------
Pillar Wang
l630521
資深會員


發表:15
回覆:349
積分:372
註冊:2003-02-17

發送簡訊給我
#8 引用回覆 回覆 發表時間:2005-04-15 09:18:40 IP:220.228.xxx.xxx 未訂閱
請參考 http://blog.csdn.net/dogbear2000/archive/2005/02/03/279600.aspx 或 http://delphi.ktop.com.tw/topic.php?topic_id=42631 你的Table有設主鍵值嗎? Ian 發表人 - l630521 於 2005/04/15 09:25:27
Wesly
中階會員


發表:14
回覆:103
積分:53
註冊:2002-05-31

發送簡訊給我
#9 引用回覆 回覆 發表時間:2005-04-15 11:45:32 IP:218.170.xxx.xxx 未訂閱
對不起沒有注意這是ADO的狀況, 看看l630521所建議的文章似乎是解決之道, 可以試試, 這也讓我學到了一個新解決方法. 在此也順便抱怨一下Borland, 在開發Delphi似乎有些急就章, 特別是在ADO的部份, 由Delphi 5 用到 6似乎有些功能在5就可以完成, 但一定要到6才去實現, 不知7, 8 又有什麼擴張功能, 沒有用過, 不知道.
l630521
資深會員


發表:15
回覆:349
積分:372
註冊:2003-02-17

發送簡訊給我
#10 引用回覆 回覆 發表時間:2005-04-15 11:59:51 IP:220.228.xxx.xxx 未訂閱
引言: 對不起沒有注意這是ADO的狀況, 看看l630521所建議的文章似乎是解決之道, 可以試試, 這也讓我學到了一個新解決方法. 在此也順便抱怨一下Borland, 在開發Delphi似乎有些急就章, 特別是在ADO的部份, 由Delphi 5 用到 6似乎有些功能在5就可以完成, 但一定要到6才去實現, 不知7, 8 又有什麼擴張功能, 沒有用過, 不知道.
唉!別抱怨了啦!就是想辦法給他能用就對了! Ian
系統時間:2024-07-03 2:49:52
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!