c# soql 文字列関数 - MS-Accessでの取引はありますか?




1 Answers

誰もあなたの答えをここに実際にあなたのコード例を与えたり、例を引用した人はいません(Accessヘルプファイルには例があります)。 注意すべき重要な問題は、Jet / ACE(Accessはトランザクションそのものをサポートしていない - それを使用しているデータベースエンジンによって異なります)が、トランザクションがワークスペースレベルで制御されていることです。 トランザクションに新しいワークスペースを作成したり、新しいワークスペースを作成したりすることができます。 ここにいくつかのサンプルコードがあります:

  On Error GoTo errHandler
    Dim wrk As DAO.Workspace
    Dim db As DAO.Database
    Dim lngInvoiceID As Long

    Set wrk = DBEngine.Workspaces(0)
    Set db = wrk.OpenDatabase(CurrentDb.Name)
    With wrk
      .BeginTrans
      db.Execute "INSERT INTO tblInvoice (CustomerID) VALUES (123);", dbFailOnError
      lngInvoiceID = db.OpenRecordset("SELECT @@IDENTITY")(0)
      db.Execute "INSERT INTO tblInvoiceDetail (InvoiceID) VALUES (" & lngInvoiceID & ")", dbFailOnError
      .CommitTrans
      Debug.Print "Inserted Invoice header and detail for Invoice " & lngInvoiceID
    End With

  exitRoutine:
    If Not (db Is Nothing) Then
       db.Close
       Set db = Nothing
    End If
    Set wrk = Nothing
    Exit Sub

  errHandler:
    MsgBox Err.Number & ": " & Err.Description, vbExclamation, "Error in transaction"
    wrk.Rollback
    Resume exitRoutine

(コードがテストされ、Access内で動作する)

salesforce 結合

私はC#.NETとMS-Accessを使って小さなデスクトップアプリケーションを開発しています。 MS-Accessの以前の経験はありません。 Ms-Accessでトランザクションを使用できるかどうかを知りたい。

私は以下のような状況があります。

Tbl1に挿入
Tbl2に挿入

tbl1の挿入が成功した場合にのみ、tbl2に挿入したいと思います。 また、tbl2に挿入中に例外がある場合は、tbl1に挿入をロールバックします。
私はこれは簡単にSQL Serverで達成することができますが、msアクセスの場合は、どのようにこれを管理する必要があります知っている。 助けてください、ありがとうございます。




Related