当前位置:首页 工作范文 事务处理实现远程表数据更新

事务处理实现远程表数据更新

发布时间:2023-08-25 04:30:43

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

在自定义类—TRANSACTION中增加方法远程表事务处理确认—RTRANS/confirm/i和取消(—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.) &&强制更新数据

温馨提示:
本文【事务处理实现远程表数据更新】由作者 范文虾 转载提供。 该文观点仅代表作者本人, 自学教育网 信息发布平台,仅提供信息存储空间服务, 若存在侵权问题,请及时联系管理员或作者进行删除。
(c)2008-2025 自学教育网 All Rights Reserved 汕头市灵创科技有限公司
粤ICP备2024240640号-6