
Q: VB + MS SQL Server and transactions
Why do these not work:
#1: Any transactions in MySP are always commited
On Error GoTo DBError
db.BeginTrans
n = db.ExecuteSQL("execute sp1 ...")
...
n = db.ExecuteSQL("execute spN ...")
db.CommitTrans
Exit Sub
DBError:
db.Rollback
Exit Sub
#2: Gives an invalid argument error at db.Execute "begin transaction"
On Error GoTo DBError
db.Execute "begin transaction", DB_SQLPASSTHROUGH
n = db.ExecuteSQL("execute sp1 ...")
...
n = db.ExecuteSQL("execute spN ...")
db.Execute "commit transaction", DB_SQLPASSTHROUGH
Exit Sub
DBError:
db.Execute "rollback transaction", DB_SQLPASSTHROUGH
Exit Sub
...While this one does work:
#3: Works fine -- commits and rolls back as expected
On Error GoTo DBError
n = db.ExecuteSQL("begin transaction")
n = db.ExecuteSQL("execute sp1 ...")
...
n = db.ExecuteSQL("execute spN ...")
n = db.ExecuteSQL("commit transaction")
Exit Sub
DBError:
db.ExecuteSQL("rollback transaction")
Exit Sub