- 相關(guān)推薦
VFP事務(wù)處理的控制命令及其應(yīng)用
VFP事務(wù)處理的控制命令及其應(yīng)用
2.1 控制事務(wù)處理的命令
VFP提供了以下處理事務(wù)的命令和函數(shù):
. BEGIN TRANSACTION
初始化一個(gè)事務(wù),表示一個(gè)事務(wù)的開(kāi)始,
VFP事務(wù)處理的控制命令及其應(yīng)用
。. ROLLBACK
取消最近BEGIN TRANSACTION語(yǔ)句以來(lái)對(duì)表的全部修改。
. END TRANSACTION
鎖定記錄,確認(rèn)最近BEGIN TRANSACTION語(yǔ)句以來(lái)對(duì)表的全部修改。
. TXTLEVEL()
確定當(dāng)前事務(wù)處理的等級(jí),最大值為5,表示事務(wù)最多嵌套五層,TXTLEVEL()為0表示當(dāng)前無(wú)事務(wù)處理。
2.2 更新遠(yuǎn)程表時(shí)控制事務(wù)處理的命令
a) SQLSETPROP() 格式如下:
SQLSETPROP(連接句柄,設(shè)置類(lèi)型[, 設(shè)置值])
設(shè)置類(lèi)型為T(mén)ransactions且設(shè)置值DB—TRANSMANUL(在 FOXPRO.H中定義)表示可以通過(guò)SQLCOMMIT()和SQLROLLBACK()人工處理事務(wù)。如果調(diào)用成功,SQLSETPROP() 返回1;否則,如果發(fā)生連接級(jí)錯(cuò)誤則返回-1,發(fā)生環(huán)境級(jí)錯(cuò)誤則返回-2。
b) SQLROLLBACK()
取消當(dāng)前事務(wù)處理期間所做的任何更改。如果事務(wù)取消成功,SQLROLLBACK()返回1;否則,返回-1,
資料共享平臺(tái)
《VFP事務(wù)處理的控制命令及其應(yīng)用》(http://www.szmdbiao.com)。如果 SQLROLLBACK() 返回-1,可以使用AERROR()確定該事務(wù)不能取消的原因。如果設(shè)置成人工處理方式,用 SQLROLLBACK()可以事務(wù)處理期間將對(duì)遠(yuǎn)程表的所有更新全部取消。c) SQLCOMMIT()提交一個(gè)事務(wù)
如果成功提交了事務(wù),SQLCOMMIT()返回1;否則,返回-1。如果SQLCOMMIT()返回-1,可使用AERROR()函數(shù)確定該事務(wù)不能取消的原因。
2.3 VFP使用事務(wù)處理的原則
事務(wù)以BEGIN TRANSACTION開(kāi)始,以END TRANSACTION 或ROLLBACK結(jié)束,必須成對(duì)使用;
除非應(yīng)用程序終止,事務(wù)一旦開(kāi)始,直到遇到END TRANSACTION或ROLLBAKC語(yǔ)句期間,將保持有效;
緩沖區(qū)中的數(shù)據(jù)比磁盤(pán)中的數(shù)據(jù)優(yōu)先級(jí)高,即事務(wù)處理優(yōu)先使用緩沖區(qū)中的數(shù)據(jù);
如果在事務(wù)處理過(guò)程中應(yīng)用程序終止,則取消事務(wù)對(duì)表的所有操作;
事務(wù)處理可以嵌套使用,最多嵌套五層。BEGIN TRANSACTION和END TRANSACTION(ROLLBACK)采用最近優(yōu)先原則匹配。最內(nèi)層的更新優(yōu)先于嵌套事務(wù)處理中的其他更新;
直接或間接調(diào)用事務(wù)時(shí),VFP自動(dòng)加鎖,直到END TRANSACTION(ROLLBACK)時(shí)自動(dòng)解鎖;
如果在事務(wù)處理期間使用了LOCK()命令, END TRANSACTION(ROLLBACK)時(shí)不自動(dòng)解鎖。
【VFP事務(wù)處理的控制命令及其應(yīng)用】相關(guān)文章:
軍訓(xùn)命令口號(hào)英文版10-13
高中生物《基因工程及其應(yīng)用》教學(xué)反思07-14
控制不了體重,何以控制人生07-01
初中數(shù)學(xué)《解直角三角形及其應(yīng)用》說(shuō)課稿范文05-25
內(nèi)控制度09-03
職場(chǎng)情緒控制法09-12
面試問(wèn)題及其答案08-30
帶手的成語(yǔ)及其解釋09-19
學(xué)會(huì)控制你的情緒06-01