我需要執行幾個sql子句,插入,更新和刪除例如。如何在Access中使用事務將它們綁定在一起?在交易中訪問
DAO是優選的。
,如:
BeginTrans
Excute SQL_1
Excute SQL_2
.....
CommitTrans
謝謝!
我需要執行幾個sql子句,插入,更新和刪除例如。如何在Access中使用事務將它們綁定在一起?在交易中訪問
DAO是優選的。
,如:
BeginTrans
Excute SQL_1
Excute SQL_2
.....
CommitTrans
謝謝!
如果您使用DAO,您可以使用全局DBEngine
對象的BeginTrans
和CommitTrans
方法:
Dim db As Database
Set db = CurrentDb
DBEngine.BeginTrans
db.Execute SQL_1
db.Execute SQL_2
...
DBEngine.CommitTrans
這裏是一個更完整的骨架......
Dim ws As DAO.Workspace
Dim in_trans As Boolean
Sub Transaction()
On Error GoTo Trans_Error
Set ws = DBEngine.Workspaces(0)
in_trans=True
ws.BeginTrans
<do some SQL stuff; maybe use Err.Raise>
ws.CommitTrans
in_trans=False
Trans_Exit:
Set ws = Nothing
Exit Sub
Trans_Error:
If in_trans = True Then
ws.Rollback
EndIf
Resume Trans_Exit
End Sub
如果有什麼不對交易,我應該在哪裏放置ROLLBACK?在錯誤處理程序? – darkjh 2011-05-10 11:52:32
@darkjh:沒錯。 – Heinzi 2011-05-10 11:59:34