Skip site navigation (1) Skip section navigation (2)

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 (view raw or flat)
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

pgsql-odbc by date

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

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group