日期:2014-05-16  浏览次数:20430 次

数据库处理中的begin transaction 命令
begin transaction 命令
启动一个事务处理。仅对数据库中的表支持事务处理。有关如何在数据库中创建和增加表的详细信息,请参阅 CREATE DATABASE 和 ADD TABLE 。

具体的作用和用法说明:

为了保存所做的修改并终止事务处理,应发出 END TRANSACTION 命令。如果事务处理失败(如服务器有故障或工作站有故障,以及没有提交事务处理就退出 Visual FoxPro),或者用户发出 ROLLBACK 命令,事务处理中的文件就恢复成原状态。
事务处理最深可嵌套五层,如果要进行第六层嵌套,则产生错误。
当修改一个数据库的记录,而该数据库又是事务处理的一部分时,网络上的其他用户在您终止事务处理之前无法访问(读或写)这些记录。

如果网络上的其他用户要访问您已经修改的记录,就必须等待您终止事务处理。在记录可用之前,用户将一直收到“记录不可用...请等待”的消息。因此,减小事务处理长度或在其他用户不需要访问期间进行事务处理就变得非常重要。


在事务处理期间不支持下列命令和函数:

命令和函数 
ADD TABLE DELETE CONNECTION
APPEND PROCEDURES DELETE DATABASE
CLEAR ALL DELETE TRIGGER
CLOSE ALL1 DELETE VIEW
CLOSE DATABASES1 MODIFY CONNECTION
COPY INDEXES MODIFY DATABASE
COPY PROCEDURES MODIFY PROCEDURE
CREATE CONNECTION MODIFY VIEW
CREATE DATABASE REMOVE TABLE
CREATE TRIGGER RENAME TABLE
CREATE VIEW REQUERY( )
CREATE SQL VIEW 

1 在事务处理期间执行 CLOSE ALL 命令,则关闭所有打开数据库中的表,但数据库仍保持打开状态;在事务处理期间执行 CLOSE DATABASES 命令,则关闭当前数据库中的所有表,但数据库仍保持打开状态。
下列命令和函数不能发送给参与事务处理的指定的表: 命令和函数 
ALTER TABLE MODIFY STRUCTURE
CREATE TABLE PACK
CURSORSETPROP( ) REINDEX
DELETE TAG TABLEREVERT( )
INDEX ZAP
INSERT