计算机考试qq邮箱验证不了,QQ邮箱收其他邮箱邮件不留底

QQ邮箱收其他邮箱邮件不留底

来源:网络发布时间:2009-08-26

IF Isuccess=.F. &&若失败

oROLLBACK &&取消修改,结束事务1

o=AERROR(aErrors) &&取消事务出错

oDO CASE

CASE aErrors[1,1]=1585

&&当前记录被其他用户改过

=RLOCK() &&记录加锁

FOR nField=1 to FCOUNT()

&&依次处理每一字段

cField=FIELD(nField)

IF OLDVAL(cField)<>CURVAL(cField)

o&&字段被改过,确认修改无效,恢复原记录

o=TABLEREVERT(.F.)

oUNLOCK

oEXIT

oENDIF

oENDFOR

oBEGIN TRANSACTION &&开始事务2

o=TABLEUPDATE(.T.,.T.) &&强制更新数据

oEND TRANSACTION &&结束事务2

oUNLOCK

ENDCASE

ELSE

END TRANSACTION &&结束事务1

ENDIF

4 事务处理实现远程表的数据更新  当使用远程表中的数据时,事务处理只更新视图临时表的本地备份,对远程基表的更新不起作用。使用SQLSETPROP()启动人工事务,SQLROLLBAK()和SQLCOMMIT()控制事务处理。

在自定义类—TRANSACTION中增加方法远程表事务处理确认—RTRANSCONFIRM和取消(—RTRANSCANCEL)两种方法。同样共享数据的各个用户程序也使用行缓冲。

— RTRANSCONFIRM 方法

LPARAMETERS hConnect &&连接句柄

SQLSETPROP(hConnect,'transmode',DB—TRANSMANUAL)

Isuccess=TABLEUPDATE(.T.,.F.)

&&非强制的更新所有修改记录

IF Isuccess=.F. &&若失败

oROLLBACK &&取消修改,结束事务1

o=AERROR(aErrors) &&取消事务出错

oDO CASE

CASE aErrors[1,1]=1585 &&当前记录被其他用户改过

=RLOCK() &&记录加锁

FOR nField=1 to FCOUNT()

&&依次处理每一字段

cField=FIELD(nField)

IF OLDVAL(cField)<>CURVAL(cField)

&&字段被改过,确认修改有效

DO CASE

oCASE TYPE(cField)='N'

oT1=CURVAL(cField)-LDVAL(cField)

oREPL cField WITH T1+EVAL(cField))

oOTHEWISE

oREPL cField WITH CURVAL(cField))

oENDCASE

ENDIF

ENDFOR

UNLOCK

=TABLEUPDATE(.T.,.T.) &&强制更新数据

SQLCOMMIT(hConnect) &&提交事务

ENDCASE

oELSE

oSQLCOMMIT(hConnect) &&提交事务

oENDIF

o— RTRANSCANCEL 方法

LPARAMETERS hConnect &&连接句柄

oSQLSETPROP(hConnect,'transmode',DB—TRANSMANUAL)

oISuccess=TABLEUPDATE(.T.,.F.)

o&&非强制的更新所有修改记录

oIF Isuccess=.F. &&若失败

ROLLBACK &&取消修改,结束事务1

=AERROR(aErrors) &&取消事务出错

DO CASE

oCASE aErrors[1,1]=1585 &&当前记录被其他用户改过

o =RLOCK() &&记录加锁

oFOR nField=1 to FCOUNT()

o&&依次处理每一字段

ocField=FIELD(nField)

oIF OLDVAL(cField)<>CURVAL(cField)

&&字段被改过,确认修改无效,恢复原记录

=TABLEREVERT(.F.)

UNLOCK

ENDIF

ENDFOR

=TABLEUPDATE(.T.,.T.) &&强制更新数据

SQLCOMMIT(hConnect) &&提交事务

ENDCASE

oELSE

oSQLCOMMIT(hConnect) &&提交事务

oENDIF

5 效果  事务处理自定义类—TRANSACION已经在VFP5.0环境下调试通,使用效果良好。可以根据需要修改类或创建新的类,如创建采用开放式表缓冲时事务处理的类。如果在事务处理过程中出现断电或其他系统中断情况,数据更新将失败,此时的数据恢复由操作系统的事务处理跟踪系统解决

【纠错】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值