2010-05-13 72 views
2

假設我在某個點擊事件觸發的表單中有以下代碼。MS Access中的交易

DoCmd.SetWarnings False 
DoCmd.OpenQuery "AddSomeStuff" 
DoCmd.OpenQuery "UpdateSomeOtherStuff" 
DoCmd.OpenQuery "DeleteABunchOfCrap" 
DoCmd.SetWarnings True 

我可以假設這三個更新查詢我執行(SQL Server中)不是事務性的,因爲它們運行是獨立的交易?

+0

訪問有這個東西稱爲幫助文件。這非常有用。 – 2010-05-14 02:53:06

回答

0

是的,他們將在單獨的交易中運行。

+0

謝謝 - 這就是我的想法。 – andyczerwonka 2010-05-13 20:14:57

0

如果需要,訪問可以有交易,但是您在代碼中是正確的,每個交易都將自行執行。無論如何,這裏是一個小代碼示例

Public Sub Foo() 
Dim wrk As Workspace 
Dim db As DAO.Database 
On Error GoTo Error_trap 
Set wrk = DBEngine(0)(0) 
Set db = wrk.OpenDatabase("mydb.mdb") 
wrk.BeginTrans 
    db.Execute "AddStuff" 
    db.Execute "DeleteStuff" 
    db.Execute "UpdateStuff" 
wrk.CommitTrans 
db.Close 
wrk.Close 
Set db = Nothing 
wt wrk = Nothing 
Exit Sub 

Error_trap: 
wrk.Rollback 
MsgBox "Something went wrong!" 

End Sub