begin transaction 命令

begin transaction 命令啟動一個事務處理。僅對資料庫中的表支持事務處理。有關如何在資料庫中創建和增加表的詳細信息,請參閱 CREATE DATABASE 和 ADD TABLE 。

語法,說明,begintransaction命令示例,

語法

BEGIN TRANSACTION

說明

為了保存所做的修改並終止事務處理,應發出 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

begintransaction命令示例

在下面示例中,打開資料庫 testdata 的 customer 表,發出 begin transaction 命令來啟動一個事務處理,接著顯示 cust_id 和 company 欄位內容。然後替換 company 欄位內容,再顯示新的平共處company 欄位內容。傳送 rollback 命令來恢復 company 欄位的原來內容,然後再次顯示 cust_id 和 company 欄位的內容,這時的 company 欄位保持原值。
open database (home( ) + 'samples\data\testdata.dbc')begin transactionuse customer && 僅在 dbc 中支持事務處理clearlist fields cust_id, company next 20wait window 'press a key to change the company field'replace all company with '***' && 更改 company 欄位內容cleargo toplist fields cust_id, company next 20wait window 'press a key to restore the company field'rollback && 恢復欄位的原來內容cleargo toplist fields cust_id, company next 20wait window 'press a key to exit'clearclose all

相關詞條

熱門詞條

聯絡我們