Re: driver ODBC-PostreSQL, cursor and transaction isolation level

From: "olivier dorie" <olivier(dot)dorie(at)ign(dot)fr>
To: "'Hiroshi Inoue'" <inoue(at)tpf(dot)co(dot)jp>
Cc: <pgsql-odbc(at)postgresql(dot)org>
Subject: Re: driver ODBC-PostreSQL, cursor and transaction isolation level
Date: 2009-04-08 12:38:40
Message-ID: 42CE9A44C44D480FA6D7B376CE95871F@ign.fr
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-odbc

Hiroshi,

Thank you for your answer.

I try the 2 solutions (BeginTrans and the driver 8.4.0100) and the two of
them work: in the small test, I describe in the last mail, the transaction
is serializable.

I have a last question: with BeginTrans or with the driver 8.4.0100, the
transaction isolation level is every time serializable ? Is it possible to
have a read committed level?

Regards
Olivier

-----Message d'origine-----
De : pgsql-odbc-owner(at)postgresql(dot)org
[mailto:pgsql-odbc-owner(at)postgresql(dot)org] De la part de Hiroshi Inoue
Envoyé : samedi 4 avril 2009 09:01
À : olivier dorie
Cc : pgsql-odbc(at)postgresql(dot)org
Objet : Re: [ODBC] driver ODBC-PostreSQL, cursor and transaction isolation
level

olivier dorie wrote:
> Hello,
>
>
> I have some problems to have a transaction isolation level serializable
> with postgresql-ODBC driver for windows by using the ODBC cursor
> (UseDeclareFetch=1).
>
>
> My database is on PostgreSQL 8.3.7/ Linux.
>
> I use the postgresql-ODBC version 8.03.04 for windows.
>
> I make this test with the default_transaction_isolation = 'read
> committed' and after with the default_transaction_isolation =
> 'serializable' on the server. The results are the same.
>
>
> I do the followings operations in a c++ programm:
>
> * I open 2 connections on my database with the ODBC drivers:
> “connexion1” and “connexion2”
> o /CDatabase * db1 = new CDatabase ;///
> o /CDatabase * db2 = new CDatabase///
> o /db1->OpenEx (chaine_connection_mydatabase,
> CDatabase::noOdbcDialog);///
> o /db2->OpenEx (chaine_connection_mydatabase,
> CDatabase::noOdbcDialog)///
> * I ask for the number of tuples of table “table1” à n tuples:
> o /CRecordset crs (//db1)/
> o /crs.Open (CRecordset::snapshot, "SELECT count (*) FROM
> table1;")///
> * I make the “connexion1” serializable :
> o /db1->ExecuteSQL (“BEGIN TRANSACTION;”) /
> o /db1->ExecuteSQL (“SET TRANSACTION ISOLATION LEVEL
> SERIALIZABLE;”)/

ODBC doesn't recommend to call dbms specific commands to control
transaction. Please use BeginTrans/CommitTrans/Rollback instead.

Anyway I improved the handling of transaction under useDeclareFetch
mode a little. Please try the drivers on testing for 8.4.0100 at
http://www.geocities.jp/inocchichichi/psqlodbc/index.html
.

regards,
Hiroshi Inoue

In response to

Responses

Browse pgsql-odbc by date

  From Date Subject
Next Message Hiroshi Inoue 2009-04-08 14:27:08 Re: driver ODBC-PostreSQL, cursor and transaction isolation level
Previous Message Hiroshi Inoue 2009-04-04 07:01:08 Re: driver ODBC-PostreSQL, cursor and transaction isolation level