欧美日韩一区二区高清,久久视频这里只有精品,超黄网站在线观看,成人av影院在线观看


曙海教育集團(tuán)論壇開發(fā)語(yǔ)言培訓(xùn)專區(qū)Delphi程序設(shè)計(jì) → 數(shù)據(jù)庫(kù)有事務(wù)處理功能,程序設(shè)計(jì)語(yǔ)言


  共有6743人關(guān)注過(guò)本帖樹形打印

主題:數(shù)據(jù)庫(kù)有事務(wù)處理功能,程序設(shè)計(jì)語(yǔ)言

美女呀,離線,留言給我吧!
wangxinxin
  1樓 個(gè)性首頁(yè) | 博客 | 信息 | 搜索 | 郵箱 | 主頁(yè) | UC


加好友 發(fā)短信
等級(jí):青蜂俠 帖子:1393 積分:14038 威望:0 精華:0 注冊(cè):2010-11-12 11:08:23
數(shù)據(jù)庫(kù)有事務(wù)處理功能,程序設(shè)計(jì)語(yǔ)言  發(fā)帖心情 Post By:2010-12-14 10:38:49

比如下面的代碼: begin Label1.Caption := aaa. BeginTrans. try Label1.Caption := bbb. //....... raise Exception.Create(Error). CommitTrans. except RollbackTrans. end. end. 如果執(zhí)行后,Label1.Caption的值能返回aaa就好了:D 當(dāng)然,實(shí)際中應(yīng)用遠(yuǎn)不止這么簡(jiǎn)單~ 只有這么多分了,呵呵這個(gè)想法還有點(diǎn)意思笨方法 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,出現(xiàn)異常自然不會(huì)賦值,沒必要跟自己過(guò)不去,如果要記錄數(shù)據(jù)庫(kù)列信息可以用中間變量。我覺得用異常一般可以的了。數(shù)據(jù)庫(kù)與程序語(yǔ)言有點(diǎn)不同。它主要是新增修改刪除一些東西。程序語(yǔ)言邏輯那可沒那麼簡(jiǎn)單了。我覺得:真的有必要的話,可以自己改寫。或者用笨辦法判斷啊。畢竟,需要返回信息的地方并不太多的。否則,就是浪費(fèi)了計(jì)算機(jī)的資源,返回了一大堆可有可無(wú)的無(wú)用的東西。估計(jì)編譯器的開發(fā)者是這么考慮的。效率才是根本嘛。輕舞肥羊,可以用 Assert(False,這是一個(gè)測(cè)試程序 IntToStr(iInCount)). 連程序在那行出錯(cuò)都告訴你to 輕舞肥羊 看了你的程序真熟悉呀,我也是這么干的,^_^ 這個(gè)想法有意思。實(shí)際上我們也會(huì)碰到這種需要還原數(shù)據(jù)的情況。我想能否借用數(shù)據(jù)庫(kù)的日志概念,把數(shù)據(jù)的變動(dòng)情況用某個(gè)結(jié)構(gòu)記錄下來(lái),然后按這些記錄進(jìn)行回滾。nullx所說(shuō),實(shí)際上是記錄了一個(gè)變動(dòng)。這也有點(diǎn)類似于Undo。大家看清楚了,并不是那么簡(jiǎn)單的,只是突然有這個(gè)想法,討論討論罷了如果僅僅是一個(gè)Caption,相信我不會(huì)笨到提這種問(wèn)題的地步吧 如果我在try后做了很多操作,當(dāng)然與數(shù)據(jù)庫(kù)無(wú)關(guān),例如對(duì)我程序的界面上很多元素進(jìn)行修改,但是在中途出現(xiàn)一個(gè)錯(cuò)誤,我要界面返回其原始狀態(tài)怎么辦? 回答,用try包起來(lái),這誰(shuí)都知道,好,我每個(gè)操作界面的語(yǔ)句都用try包起來(lái),出錯(cuò)就跳出, 但還是不能返回原值,而且也不知道哪些已經(jīng)改變,不會(huì)要我用結(jié)構(gòu)/對(duì)象把界面上所有的信息記錄起來(lái)再操作一個(gè)try塊,然后出錯(cuò)還原吧...呵,想都累死 TO delp: 斷言對(duì)這個(gè)問(wèn)題好象沒什么幫助 TO nullx: 不僅僅是返回信息,而是要還原所有改動(dòng) 首先,我可以說(shuō),在我所知道的編程語(yǔ)言里(數(shù)據(jù)庫(kù)不算)此題無(wú)解 可能我腦子里哪根筋錯(cuò)位了吧,呵呵to 輕舞肥羊 不好意思,沒理解題意 等我仔細(xì)想想to 輕舞肥羊 如果你指保存部分,你自己定義的數(shù)據(jù)是可以做到的,但是如果你什么都想保存,那難。 to 輕舞肥羊 我完成了部分,是否可以結(jié)一點(diǎn)分..... 有意思[:)] 我覺得如果非要那樣做的話,也許隻有用結(jié)構(gòu)或數(shù)組把那些信息記錄下來(lái),不過(guò)要是修改很多的話,那效果肯定很差肥羊:歡迎你只消失半個(gè)月就回來(lái)啊。大概是用數(shù)據(jù)庫(kù)實(shí)現(xiàn)事務(wù)處理比語(yǔ)言要方便。因?yàn)榫幊陶Z(yǔ)言遠(yuǎn)遠(yuǎn)比數(shù)據(jù)庫(kù)語(yǔ)句靈活,你應(yīng)該在事務(wù)失敗的時(shí)候,調(diào)用部分代碼來(lái)恢復(fù)原狀。 數(shù)據(jù)庫(kù)的事務(wù)是由一個(gè)程序來(lái)控制的,你不能指望自己的程序受到別的什么的保護(hù)!這個(gè)想法很有創(chuàng)意!! 如果能實(shí)現(xiàn)的話,就可以把一系列事件放在一個(gè)“事務(wù)”里管理起來(lái),這樣在一系列有關(guān)聯(lián)的操作中有一步錯(cuò)誤的話可以回滾到開始,如果再和數(shù)據(jù)庫(kù)的事務(wù)回滾結(jié)合起來(lái)使用,那我們的很多管理信息系統(tǒng)的維護(hù)量就可以大大減輕了,支持支持!!參不透你的意思[:D][:D]to 輕舞肥羊 你到底出不出現(xiàn)呀,你出現(xiàn)了,我好貼代碼呀......急呀 to 輕舞肥羊 程序?qū)懲炅耍饶愠鰜?lái),這 288 分我急需.......... 你去那里了,盼望呀....TO delp 貼吧,不要擔(dān)心分?jǐn)?shù)了,我用不完~目前可以保證 TLabel TEdit TMemo 屬性賦值的事務(wù)機(jī)制,你可以擴(kuò)展增加對(duì)其他控件的事務(wù)支持,留下 Email 我發(fā)測(cè)試代碼給你..... 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


支持(0中立(0反對(duì)(0單帖管理 | 引用 | 回復(fù) 回到頂部

返回版面帖子列表

數(shù)據(jù)庫(kù)有事務(wù)處理功能,程序設(shè)計(jì)語(yǔ)言








簽名
主站蜘蛛池模板: 丰城市| 孟连| 凤山县| 辛集市| 都匀市| 娄烦县| 蛟河市| 霞浦县| 宁安市| 梅河口市| 景洪市| 郁南县| 佛冈县| 会昌县| 太原市| 旬阳县| 新野县| 桓仁| 肥东县| 毕节市| 松滋市| 台南市| 鹿邑县| 新密市| 喜德县| 大埔区| 牟定县| 巫溪县| 新宁县| 嫩江县| 顺平县| 噶尔县| 安陆市| 巩义市| 巴林右旗| 宁陕县| 大港区| 喀喇| 富裕县| 文昌市| 曲麻莱县|