久久中文视频-久久中文网-久久中文亚洲国产-久久中文字幕久久久久-亚洲狠狠成人综合网-亚洲狠狠婷婷综合久久久久

以文本方式查看主題

-  曙海教育集團論壇  (http://www.xinguifushi.cn/bbs/index.asp)
--  Delphi程序設計  (http://www.xinguifushi.cn/bbs/list.asp?boardid=76)
----  數據庫有事務處理功能,程序設計語言  (http://www.xinguifushi.cn/bbs/dispbbs.asp?boardid=76&id=2561)

--  作者:wangxinxin
--  發布時間:2010-12-14 10:38:49
--  數據庫有事務處理功能,程序設計語言

比如下面的代碼: begin Label1.Caption := aaa. BeginTrans. try Label1.Caption := bbb. //....... raise Exception.Create(Error). CommitTrans. except RollbackTrans. end. end. 如果執行后,Label1.Caption的值能返回aaa就好了:D 當然,實際中應用遠不止這么簡單~ 只有這么多分了,呵呵這個想法還有點意思笨方法 var temp:string. begin Label1.Caption := aaa. BeginTrans. try Temp:=Label1.Caption. Label1.Caption := bbb. //....... raise Exception.Create(Error). CommitTrans. except RollbackTrans. Label1.Caption:=temp. end. end. 在try后面寫Label1.Caption := bbb,出現異常自然不會賦值,沒必要跟自己過不去,如果要記錄數據庫列信息可以用中間變量。我覺得用異常一般可以的了。數據庫與程序語言有點不同。它主要是新增修改刪除一些東西。程序語言邏輯那可沒那麼簡單了。我覺得:真的有必要的話,可以自己改寫。或者用笨辦法判斷啊。畢竟,需要返回信息的地方并不太多的。否則,就是浪費了計算機的資源,返回了一大堆可有可無的無用的東西。估計編譯器的開發者是這么考慮的。效率才是根本嘛。輕舞肥羊,可以用 Assert(False,這是一個測試程序 IntToStr(iInCount)). 連程序在那行出錯都告訴你to 輕舞肥羊 看了你的程序真熟悉呀,我也是這么干的,^_^ 這個想法有意思。實際上我們也會碰到這種需要還原數據的情況。我想能否借用數據庫的日志概念,把數據的變動情況用某個結構記錄下來,然后按這些記錄進行回滾。nullx所說,實際上是記錄了一個變動。這也有點類似于Undo。大家看清楚了,并不是那么簡單的,只是突然有這個想法,討論討論罷了如果僅僅是一個Caption,相信我不會笨到提這種問題的地步吧 如果我在try后做了很多操作,當然與數據庫無關,例如對我程序的界面上很多元素進行修改,但是在中途出現一個錯誤,我要界面返回其原始狀態怎么辦? 回答,用try包起來,這誰都知道,好,我每個操作界面的語句都用try包起來,出錯就跳出, 但還是不能返回原值,而且也不知道哪些已經改變,不會要我用結構/對象把界面上所有的信息記錄起來再操作一個try塊,然后出錯還原吧...呵,想都累死 TO delp: 斷言對這個問題好象沒什么幫助 TO nullx: 不僅僅是返回信息,而是要還原所有改動 首先,我可以說,在我所知道的編程語言里(數據庫不算)此題無解 可能我腦子里哪根筋錯位了吧,呵呵to 輕舞肥羊 不好意思,沒理解題意 等我仔細想想to 輕舞肥羊 如果你指保存部分,你自己定義的數據是可以做到的,但是如果你什么都想保存,那難。 to 輕舞肥羊 我完成了部分,是否可以結一點分..... 有意思[:)] 我覺得如果非要那樣做的話,也許隻有用結構或數組把那些信息記錄下來,不過要是修改很多的話,那效果肯定很差肥羊:歡迎你只消失半個月就回來啊。大概是用數據庫實現事務處理比語言要方便。因為編程語言遠遠比數據庫語句靈活,你應該在事務失敗的時候,調用部分代碼來恢復原狀。 數據庫的事務是由一個程序來控制的,你不能指望自己的程序受到別的什么的保護!這個想法很有創意!! 如果能實現的話,就可以把一系列事件放在一個“事務”里管理起來,這樣在一系列有關聯的操作中有一步錯誤的話可以回滾到開始,如果再和數據庫的事務回滾結合起來使用,那我們的很多管理信息系統的維護量就可以大大減輕了,支持支持!!參不透你的意思[:D][:D]to 輕舞肥羊 你到底出不出現呀,你出現了,我好貼代碼呀......急呀 to 輕舞肥羊 程序寫完了,等你出來,這 288 分我急需.......... 你去那里了,盼望呀....TO delp 貼吧,不要擔心分數了,我用不完~目前可以保證 TLabel TEdit TMemo 屬性賦值的事務機制,你可以擴展增加對其他控件的事務支持,留下 Email 我發測試代碼給你..... TUnSafeTrans = class private FSavePoint : TComponent. FSaveName : TStringList. FSaveType : TList. FBinStream : TMemoryStream. function GetType(ptSavePoint : TComponent) : TComponentClass. function Restore(i : Integer) : TComponent. public Constructor BeginTrans(ptSavePoint : TComponent). Destructor Destroy. override. procedure Rollback. procedure Commit. end. constructor TUnSafeTrans.BeginTrans(ptSavePoint: TComponent). var I : Integer. P : Pointer. begin FSavePoint := ptSavePoint. FBinStream := TMemoryStream.Create. FSaveName := TStringList.Create. FSaveType := TList.Create. for I := 0 to FSavePoint.ComponentCount - 1 do begin P := GetType(FSavePoint.Components[i]). if nil


主站蜘蛛池模板: 九九热视频精品 | 自拍偷拍视频在线观看 | 中文国产成人精品少久久 | 免费a级毛片视频 | 国产三级网站 | 在线视频免费观看a毛片 | 99爱视频在线观看 | 亚洲成人国产 | 免费观看a视频 | 国产精自产拍久久久久久 | 色综合九九 | 免费一级毛片免费播放 | 综合九九| 日韩成人小视频 | 欧美成人中文字幕 | 成人牲交一极毛片 | 99手机在线视频 | 亚洲女精品一区二区三区 | 欧美日韩另类综合 | 一级毛片在线不卡直接观看 | 国产一区中文字幕在线观看 | 亚洲另类激情综合偷自拍图 | 国内精品久久久久久中文字幕 | 国产精品18久久久久久小说 | 国产成人免费午夜在线观看 | 国产第一页在线观看 | 欧美兽皇video| 国产一区精品在线 | 成人久久18免费网站游戏 | 欧美日韩高清观看一区二区 | 免费看欧美一级特黄a毛片 免费看片aⅴ免费大片 | 欧美天堂 | 午夜美女网站 | 色噜噜狠狠大色综合 | 欧美午夜影院 | 久久国产精品1区2区3区网页 | 成年人视频在线观看免费 | 一本久久道久久爱 | 欧美亚洲中日韩中文字幕在线 | 久久久免费网站 | 精品国产日韩亚洲一区在线 |