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

新增後再編輯會出現錯誤

答題得分者是:jieshu
cubi
初階會員


發表:56
回覆:94
積分:35
註冊:2002-04-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-08-25 10:28:28 IP:61.58.xxx.xxx 未訂閱
請教先進   小弟是用D6+MSSQL+MIDAS+ADO,當Client新增一筆資料後,隨即修改,要再存檔 時,或要刪除就會出現如下錯誤訊息: [xxxxx.EXE].[FormName]Record not found or changed by another user. 此Table有一個自動編號的欄位(PrimaryKey),小弟用Profiler監看,發現 新增後,隨即修改再存檔時,此欄位竟為null,請教先進,這要如何解決呢?? 小弟現在的做法是,當新增存檔後,先Close再Open就不會有這樣的情況發生, 請問是否還有其它方法呢?? 感激不盡,謝謝
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-08-25 10:44:43 IP:218.16.xxx.xxx 未訂閱
你試試 ApplyUpdate 後立即用 Refresh 讀回新記錄的 Auto-Inc 欄位的值。 記得 BDE 及 部份 dbExpress driver 都可以這樣讀回該值,ADO 我沒用所以不肯定。
william
版主


發表:66
回覆:2535
積分:3048
註冊:2002-07-11

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-08-25 10:45:45 IP:147.8.xxx.xxx 未訂閱
You get the autoinc only after applyupdate... Remember to set poPropogateChanges to True in your dataset provider.
cubi
初階會員


發表:56
回覆:94
積分:35
註冊:2002-04-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-08-25 13:17:00 IP:61.58.xxx.xxx 未訂閱
引言: 你試試 ApplyUpdate 後立即用 Refresh 讀回新記錄的 Auto-Inc 欄位的值。 記得 BDE 及 部份 dbExpress driver 都可以這樣讀回該值,ADO 我沒用所以不肯定。
感謝先進,可以了,但用Refesh和Close再Open差在那兒呢,在效率 上是否有差呢??謝謝
cubi
初階會員


發表:56
回覆:94
積分:35
註冊:2002-04-15

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-08-25 13:20:18 IP:61.58.xxx.xxx 未訂閱
引言: You get the autoinc only after applyupdate... Remember to set poPropogateChanges to True in your dataset provider.
感謝先進 恕小弟愚昧,請如何只取得autoinc欄位呢??謝謝
jieshu
版主


發表:42
回覆:894
積分:745
註冊:2002-04-15

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-08-25 14:17:32 IP:203.204.xxx.xxx 未訂閱
引言:
引言: You get the autoinc only after applyupdate... Remember to set poPropogateChanges to True in your dataset provider.
感謝先進 恕小弟愚昧,請如何只取得autoinc欄位呢??謝謝
將DataSetProvider的Options的poPropogateChanges設成True,以下是Delphi的說明: poPropogateChanges Changes made in a BeforeUpdateRecord or AfterUpdateRecord event handler are sent back to the client and merged into the client dataset.
人生有夢,逐夢而行。 人若為善,福雖未至,禍已遠離。 人若為惡,禍雖未至,福已遠離。 http://www.taconet.com.tw/jieshu/
------
人生有夢,逐夢而行
人若為善,福雖未至,禍已遠離
人若為惡,禍雖未至,福已遠離
http://www.taconet.com.tw/jieshu/
Ethan
版主


發表:101
回覆:170
積分:78
註冊:2006-07-05

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-08-25 15:07:16 IP:61.218.xxx.xxx 未訂閱
引言: 請教先進 小弟是用D6+MSSQL+MIDAS+ADO,當Client新增一筆資料後,隨即修改,要再存檔 時,或要刪除就會出現如下錯誤訊息: [xxxxx.EXE].[FormName]Record not found or changed by another user. 此Table有一個自動編號的欄位(PrimaryKey),小弟用Profiler監看,發現 新增後,隨即修改再存檔時,此欄位竟為null,請教先進,這要如何解決呢?? 小弟現在的做法是,當新增存檔後,先Close再Open就不會有這樣的情況發生, 請問是否還有其它方法呢?? 感激不盡,謝謝
這個就要看您程式怎麼寫, 我想您是不是有另一個table在處理自動編號的? 一般close後再open一定是沒問題的.如果您可以把部份程式貼上來或許比較容易找到問題. 學習,從分享開始^^
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-08-25 15:52:21 IP:218.16.xxx.xxx 未訂閱
引言: 感謝先進,可以了,但用Refesh和Close再Open差在那兒呢,在效率 上是否有差呢??謝謝
用 refresh 理論上只傳輸改動過的 record 所以應會效率好點,而且 close-open 會跳回第一筆但 refresh 可保留在當前記錄。
cubi
初階會員


發表:56
回覆:94
積分:35
註冊:2002-04-15

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-08-28 08:33:11 IP:61.58.xxx.xxx 未訂閱
引言:
引言:
引言: You get the autoinc only after applyupdate... Remember to set poPropogateChanges to True in your dataset provider.
感謝先進 恕小弟愚昧,請如何只取得autoinc欄位呢??謝謝
將DataSetProvider的Options的poPropogateChanges設成True,以下是Delphi的說明: poPropogateChanges Changes made in a BeforeUpdateRecord or AfterUpdateRecord event handler are sent back to the client and merged into the client dataset.
人生有夢,逐夢而行。 人若為善,福雖未至,禍已遠離。 人若為惡,禍雖未至,福已遠離。 http://www.taconet.com.tw/jieshu/
小弟試過將poPropogateChanges改成True還是一樣,是否有其它地方 小弟忽略呢,謝謝
jieshu
版主


發表:42
回覆:894
積分:745
註冊:2002-04-15

發送簡訊給我
#10 引用回覆 回覆 發表時間:2004-03-10 14:22:00 IP:203.204.xxx.xxx 未訂閱
引言: 小弟試過將poPropogateChanges改成True還是一樣,是否有其它地方 小弟忽略呢,謝謝
請參考此篇http://delphi.ktop.com.tw/topic.php?TOPIC_ID=46216
人生有夢,逐夢而行。 人若為善,福雖未至,禍已遠離。 人若為惡,禍雖未至,福已遠離。 http://www.coss.com.tw/jieshu/
------
人生有夢,逐夢而行
人若為善,福雖未至,禍已遠離
人若為惡,禍雖未至,福已遠離
http://www.taconet.com.tw/jieshu/
系統時間:2024-04-26 9:08:40
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!