多層架構中客戶端如何快速批量向服務器端Paradox表添加數據? |
答題得分者是:Justmade
|
kaida
中階會員 發表:4 回覆:35 積分:52 註冊:2003-03-02 發送簡訊給我 |
|||
jieshu
版主 發表:42 回覆:894 積分:745 註冊:2002-04-15 發送簡訊給我 |
引言: 多層架構中客戶端如何快速批量向服務器端Paradox表添加數據? 我的Paradox表有一Autoincrement字段,在客戶端批量添加數據 為什麼會出現『key viotion』錯誤?應如何解決?看錯誤訊息好像是Key值重複,可否列出詳細的錯誤訊息,還有PrimaryKey的設定。
------
人生有夢,逐夢而行 人若為善,福雖未至,禍已遠離 人若為惡,禍雖未至,福已遠離 http://www.taconet.com.tw/jieshu/ |
||
kaida
中階會員 發表:4 回覆:35 積分:52 註冊:2003-03-02 發送簡訊給我 |
引言:詳細錯誤信息是: Project MyProg.exe raised exception class EDBClient with message 'key violation', process stopped. Use step or run to continue. Autoincrement字段設為PrimaryKey。 如果不用多層架構直接操作該數據表則沒問題(Autoincrement字段沒有人工賦值,自動遞增)。在多層架構將Autoincrement字段改為Number字段,人工賦予不同的值也沒問題。是不是在多層架構中Autoincrement字段的值不能自動遞增? 謝謝回答!引言: 多層架構中客戶端如何快速批量向服務器端Paradox表添加數據? 我的Paradox表有一Autoincrement字段,在客戶端批量添加數據 為什麼會出現『key viotion』錯誤?應如何解決?看錯誤訊息好像是Key值重複,可否列出詳細的錯誤訊息,還有PrimaryKey的設定。 |
||
jieshu
版主 發表:42 回覆:894 積分:745 註冊:2002-04-15 發送簡訊給我 |
引言: 詳細錯誤信息是: Project MyProg.exe raised exception class EDBClient with message 'key violation', process stopped. Use step or run to continue. Autoincrement字段設為PrimaryKey。 如果不用多層架構直接操作該數據表則沒問題(Autoincrement字段沒有人工賦值,自動遞增)。在多層架構將Autoincrement字段改為Number字段,人工賦予不同的值也沒問題。是不是在多層架構中Autoincrement字段的值不能自動遞增? 謝謝回答!我測試如果沒有寫入KeyValue,新增10000筆,他只寫入1筆,跑兩次都這樣。 如果有寫入KeyValue,則都沒有寫入Paradox,我是整個跑完,下ApplyUpdates(0)。 我測試如果沒有寫入KeyValue,每新增完1筆,即下ApplyUpdates(0)則沒問題,但速度比較慢。但沒有錯誤訊息產生!
------
人生有夢,逐夢而行 人若為善,福雖未至,禍已遠離 人若為惡,禍雖未至,福已遠離 http://www.taconet.com.tw/jieshu/ |
||
kaida
中階會員 發表:4 回覆:35 積分:52 註冊:2003-03-02 發送簡訊給我 |
|||
jieshu
版主 發表:42 回覆:894 積分:745 註冊:2002-04-15 發送簡訊給我 |
引言: 我測試如果沒有寫入KeyValue,每新增完1筆,即下ApplyUpdates(0)則沒問題,但速度比較慢。但沒有錯誤訊息產生! 我測試的結果也是這樣。每筆更新一次,速度太慢了,無法忍受。不知有否更好的辦法?建議改用Access和ADO配合使用。
------
人生有夢,逐夢而行 人若為善,福雖未至,禍已遠離 人若為惡,禍雖未至,福已遠離 http://www.taconet.com.tw/jieshu/ |
||
Justmade
版主 發表:94 回覆:1934 積分:2030 註冊:2003-03-12 發送簡訊給我 |
若你只是要批量新增的話,有一個方法,就是 select statement 別選 AutoIncreasement 欄位,只選其他欄位
TQuery RequestLive := true
ClientDataSet 的 Packet Records 埴 0 (非必要,但可節省從數據庫傳送資料到客戶端的時間)
在 ClientDataSet 如常 Append 資料後 ApplyUpdate 即可。 AutoIncreasement 欄位會自動處理。 若你要同時新增修改的話,你應要在 DataSetProvider 的 onUpdateData 事件自行處理.
|
||
kaida
中階會員 發表:4 回覆:35 積分:52 註冊:2003-03-02 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |