VFP 愛用者社區 首頁 VFP 愛用者社區
本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
 
 常見問題常見問題   搜尋搜尋   會員列表會員列表   會員群組會員群組   會員註冊會員註冊 
 個人資料個人資料   登入檢查您的私人訊息登入檢查您的私人訊息   登入登入

ca事務下出錯...

 
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區
上一篇主題 :: 下一篇主題  
發表人 內容
foxabc



註冊時間: 2012-04-21
文章: 61


第 1 樓

發表發表於: 星期五 十一月 14, 2014 1:12 pm    文章主題: ca事務下出錯... 引言回覆

作業環境 vfp9-ca WhereType=4

新增一筆資料後,測試下列程序
SQLSetProp(ConnectHandle,"Transactions",2)
result = TableUpdate(.F.)
if result
SQLRollback(ConnectHandle)
SQLSetProp(ConnectHandle,"Transactions",1)
endif


若在執行
SQLSetProp(ConnectHandle,"Transactions",2)
result = TableUpdate(.F.)
if result
SQLCommit(ConnectHandle)
SQLSetProp(onnectHandle,"Transactions",1)
endif
結果是儲存成功 但是後端沒此筆資料


那放棄此筆資料
aaa= tablerevert()
結果 aaa= 0


想問一下,為何這一筆資料變成孤兒
若是修改資料時,執行上述程式則沒問題

剛學c/s +ca 我功力平平,參考資料又少,搞得我頭暈><...
.
回頂端
檢視會員個人資料 發送私人訊息
Batman



註冊時間: 2003-11-15
文章: 348


第 2 樓

發表發表於: 星期日 十一月 16, 2014 4:56 pm    文章主題: 引言回覆

好像要將更新的條件寫出來才可回答, 因不知你是更新本地已設定buffer表, 或是直接更新後台資料表, 另SQLSetProp(onnectHandle,"Transactions",1) 應寫在最後的endif之後
回頂端
檢視會員個人資料 發送私人訊息
syntech



註冊時間: 2003-05-16
文章: 4249
來自: Taipei,Taiwan

第 3 樓

發表發表於: 星期二 十一月 18, 2014 9:28 am    文章主題: 引言回覆

用ADO 連接 SQL SERVER,
HELP 是說要設定 ConflictCheckType 屬性,
預設是不檢查.
可能因此造成你更新錯誤而沒有錯誤訊息.

看看你後端資料庫有沒有監視程式,
查一下是否真的發生錯誤.

CursorAdapter 的作業方式與spt或是remote view 不一樣,
用傳統的想法可能會出問題.

_________________
如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問

請聯絡我們,也許我們幫得上忙
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 AIM Address
foxabc



註冊時間: 2012-04-21
文章: 61


第 4 樓

發表發表於: 星期二 十一月 18, 2014 10:50 am    文章主題: 引言回覆

感謝回復

BufferModeOverride=5
ConflictCheckType=3

我的疑問是若同時新增2筆資料,啟動事務,儲存檔案
SQLSetProp(ConnectHandle,"Transactions",2)
result = TableUpdate(.T.)
結果 result =.F.

這時若第一筆成功,第二筆失敗則回滾
SQLRollback(ConnectHandle)
SQLSetProp(ConnectHandle,"Transactions",1)


那我更改第二筆資料後,再次儲存
SQLSetProp(ConnectHandle,"Transactions",2)
result = TableUpdate(.T.)
結果 result =.T.
SQLCommit(ConnectHandle)
SQLSetProp(onnectHandle,"Transactions",1)


我看sqlserver profiler 只發送第二筆新增命令,第一筆沒動作
且第一筆資料在第一次雖儲存成功,但回滾,並未真正寫入後端


在下
ca.cursorrefresh()
thisform.refresh
第一筆資料消失

移至其他資料時報錯 别名“名”的表缓冲区含有未实现的修改 (错误 1545)
回頂端
檢視會員個人資料 發送私人訊息
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
1頁(共1頁)

 
前往:  
無法 在這個版面發表文章
無法 在這個版面回覆文章
無法 在這個版面編輯文章
無法 在這個版面刪除文章
無法 在這個版面進行投票
無法 在這個版面附加檔案
無法 在這個版面下載檔案


Powered by phpBB © 2001, 2005 phpBB Group
正體中文語系由 phpbb-tw 維護製作