Откатывайте Несколько запросов на обновление SQL в Доступе MS

У меня есть несколько хранимых процедур SQL (например, Обновление, операторы SELECT INTO) выполняемый в VBA в Доступе MS:

CurrentDb. Выполните "qry1"
CurrentDb. Выполните "qry2"

Я хочу это так, чтобы:
*, если qry2 перестал работать, он отменит qry1.
* qry1 и qry2 выполняются одновременно, (поскольку у меня есть многие из этих хранимых процедур, выполняемых в цепочке), таким образом, процедура работает быстрее.

Как это может быть сделано?

5
задан Christopher Tso 1 January 2010 в 12:38
поделиться

1 ответ

Сделки могут подходить, они допускают откат: http://msdn.microsoft.com/en-us/library/bb243155.aspx

EDIT

Вот пример в DAO:

Dim strSQL As String
Dim db As DAO.Database
Dim wrk As Workspace

On Error GoTo TrapError

    Set db = CurrentDb
    Set wrk = DBEngine.Workspaces(0)

    wrk.BeginTrans
        strSQL = "Update sysInfo Set InvoiceOR=False"
        db.Execute strSQL, dbFailOnError
    wrk.CommitTrans

Exit_Sub:
    Set db = Nothing
    Set wrk = Nothing
    Exit Sub

TrapError:

    MsgBox "Failed: " & Err.Description
    wrk.Rollback
    Err.Clear
    Resume Exit_Sub

Вот некоторые черновые примечания для ADO:

Dim cmd As ADODB.Command
Dim cn As ADODB.Connection

Set cmd = CreateObject("ADODB.Command")
Set cn = CurrentProject.Connection

cmd.CommandText = "Update sysInfo Set InvoiceOR=False"
cmd.ActiveConnection = cn
cmd.ActiveConnection.BeginTrans
cmd.Execute , , adExecuteNoRecords

If Err <> 0 Then
    cmd.ActiveConnection.RollbackTrans
Else
    cmd.ActiveConnection.CommitTrans
End If
8
ответ дан 14 December 2019 в 04:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: