本质上缓冲机制也是一种事务,应用时只能二者取其一,
对启用了缓冲机制的表,tableupdate(.t.)命令就是事务
提交的表现,在其外层又用了begin transaction显然
多余,这种情况下rollback肯定是不起作用的。
对启用了缓冲机制的表,tableupdate(.t.)命令就是事务
提交的表现,在其外层又用了begin transaction显然
多余,这种情况下rollback肯定是不起作用的。
解决方案 »
- 定时作一次select..where processed=0,如何防止其他用户update processed造成的死锁
- SQL相当复杂的删除重复记录
- SQL2000 分组 行号
- 单表上亿条数据求解决办法
- 邹建大哥,刚才那个取前面几个字节的问题有点奇怪的现象,请帮帮我!
- 关于触发器的问题,谢谢
- 能解决问题的送300分。关于一个博彩系统的表的设计问题。其余分开其他贴另送。
- 如何转换时间格式
- 网站效率低,连接70以上出现进程池和sql服务占cpu双高,
- @@@@@@@@@@@@@@@@@@一个简单的问题,当场给分◎◎◎◎◎◎◎◎◎◎◎
- insert into 表1 select * from 表2 引发的错误
- 求救:查找间断的数据(在线等待)!
begin transaction
select test &&test为表缓冲
replace all aa with "a89456"
rollback
全部回滚.该如何处理.
CLEAR
CLOSE DATABASES* Transactions are only supported within a DBC
OPEN DATABASE (HOME(2) + 'Data\testdata')SET MULTILOCKS ON && Required for buffering
USE customer
=CURSORSETPROP("Buffering",5)
? 'The original company field'
LIST FIELDS cust_id, company NEXT 5
REPLACE ALL company WITH "***" && Change field contentsBEGIN TRANSACTION
=TABLEUPDATE(.T.)
GO TOP
? 'The modified company field'
LIST FIELDS cust_id, company NEXT 5
ROLLBACK && Restore original field contents=TABLEREVERT(.T.)
GO TOP
? 'The restored company field'
LIST FIELDS cust_id, company NEXT 5其中就用了tableupdate()+rollback
我没有试出来,你们哪?
=CURSORSETPROP("Buffering",5)启用你的表缓冲?
看看下面的例子:
IF MESSAGEBOX(“数据被另一用户所更改是否用编辑结果更新改写”) = MSGBOX_YES
*Try to force update
BEGIN TRANSACTION
m.lSuccess = TABLEUPDATE(.T.,.T.)
IF m.lSuccess
END TRANSACTION
LOOP
ELSE
ROLLBACK
=MESSAGEBOX(“更新失败。”)
ENDIF
ENDIF