用interbase元件存取firebird資料庫,若啟用交易控制卻不能儲存,為什麼? |
答題得分者是:P.D.
|
ry_lee
高階會員 發表:368 回覆:251 積分:123 註冊:2002-03-19 發送簡訊給我 |
用interbase元件存取firebird資料庫,若啟用交易控制卻不能儲存,且會關閉資料集,為什麼呢? 要啟動交易控制是因為希望IBorders和IBparts之記錄要嬤都儲存,不然都不儲存,之前我是透過IBorders和IBparts之onupdateerror事件來捕捉錯誤並修正錯誤,但會發生IBorders之記錄有儲存但IBparts之記錄卻沒有儲存,為了解決這問題,我寫一段交易控制code
IBorders和IBparts之cacheupdates都設定為true dbgrid1透過datasource連接IBorders,dbgrid2透過datasource連接IBparts IBorders和IBparts是一對多連結之主要明細表 procedure Tmaster_detialForm.Button10Click(Sender: TObject); var totalfee:integer; begin try datamod.IBTransaction1.StartTransaction; datamod.IBparts.First; while not datamod.IBparts.Eof do begin totalfee:=totalfee datamod.IBparts.FieldValues['fee']; datamod.IBparts.Next; end; datamod.IBorders.Edit; datamod.IBorders.FieldByName('total').Value:=totalfee; datamod.IBorders.Post; datamod.IBDatabase1.ApplyUpdates([datamod.IBorders]); datamod.IBDatabase1.ApplyUpdates([datamod.IBparts]); datamod.IBTransaction1.Commit; except datamod.IBTransaction1.Rollback; end; end; PS: 為什麼delphi 7.0裡面沒有介紹用interbase元件存取interbase資料庫,並啟用交易控制之範例程式,不曉得那裡有這類範例程式以供參考. |
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
|
ry_lee
高階會員 發表:368 回覆:251 積分:123 註冊:2002-03-19 發送簡訊給我 |
1.IBorder, 與 IBpart 是同屬於一個 transaction 嗎?ANS: 是
2.案例中, 完全沒看到 IBpart有進行任何異動, 何以 IBpart 會進行applyupdates呢? ANS: IBpart 是經由dbgrid2新增或修改,之後按dbnavigator2之post鈕以儲存 ===================引 用 P.D. 文 章=================== 個人有些疑問 1.IBorder, 與 IBpart 是同屬於一個 transaction 嗎? 2.案例中, 完全沒看到 IBpart有進行任何異動, 何以 IBpart 會進行applyupdates呢? 這樣是會觸發錯誤的, 也正解釋, 為何 IBorder有存入(因為有Applyupdates), 但IBpart確沒有 |
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
不清楚你的 IBorder 與 IBpart 的主從關係與關聯性
1.建議你要除錯的話, 先將 order 與 part 分開兩個 transaction , 分別存入看是否都會進去, 如果會代表兩個table 的連結關係與transaction有關係, 那試著把part先applyupdate, 再 order applyupdate ===================引 用 ry_lee 文 章=================== 1.IBorder, 與 IBpart 是同屬於一個 transaction 嗎?ANS: 是 2.案例中, 完全沒看到 IBpart有進行任何異動, 何以 IBpart 會進行applyupdates呢? ANS: IBpart 是經由dbgrid2新增或修改,之後按dbnavigator2之post鈕以儲存 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |