From: | <noreply(at)pgfoundry(dot)org> |
---|---|
To: | noreply(at)pgfoundry(dot)org |
Subject: | [ psqlodbc-Bugs-1000564 ] Rollback in manual transaction |
Date: | 2006-02-22 12:23:51 |
Message-ID: | 20060222122351.148581033823@pgfoundry.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-odbc |
Bugs item #1000564, was opened at 22/02/2006 12:23
You can respond by visiting:
http://pgfoundry.org/tracker/?func=detail&atid=538&aid=1000564&group_id=1000125
Category: None
Group: None
Status: Open
Resolution: None
Priority: 3
Submitted By: Nobody (None)
Assigned to: Nobody (None)
Summary: Rollback in manual transaction
Initial Comment:
Postgres 8.1 either Windows or linux
psqlODBC 08.01.0200
.Net Framework 1.1 in particular Visual Basic
In Notes: psqlODBC 08.01.0106 I read:
...
3) doesn't call rollback in autocommit off or in manual transaction
...
But Executing a statement in a transaction which gives an error causes an implicit rollback of the transaction and the close of the connection.
Sample code:
Dim cnt As New Odbc.OdbcConnection"Driver={PostgreSQL Unicode}; Server=****; Database=test_ado; Uid=postgres; Password=****; BoolsAsChar=0; Parse=0; UniqueIndex=1; TextAsLongVarchar=1; LowerCaseIdentifier=1")
Dim tra As Odbc.OdbcTransaction
Dim sSql As String
Try
cnt.Open()
tra = cnt.BeginTransaction()
'Setting Primary key to Null cause an error
sSql = "UPDATE test_ado SET cod=Null WHERE cod ='00004'"
Dim cmd As New Odbc.OdbcCommand(sSql, cnt)
cmd.CommandText = sSql
cmd.Transaction = tra
cmd.ExecuteNonQuery()
Catch ex As Exception
MsgBox(ex.Message)
MsgBox(cnt.State.ToString)
End Try
----------------------------------------------------------------------
You can respond by visiting:
http://pgfoundry.org/tracker/?func=detail&atid=538&aid=1000564&group_id=1000125
From | Date | Subject | |
---|---|---|---|
Next Message | Dave Page | 2006-02-22 15:45:14 | psqlODBC Experimental Enhanced branch |
Previous Message | noreply | 2006-02-22 12:23:18 | [ psqlodbc-Bugs-1000563 ] Rollback in manual transaction |