Обсуждение: TRANSACTIONS and TCP/IP

Поиск
Список
Период
Сортировка

TRANSACTIONS and TCP/IP

От
Barry Baldwin
Дата:
Hi,

I've got postgres 6.5.2 running on a Linux box and I'm developing a client
app in Delphi.  The client sends SQL commands via TCP/IP.  
I've tried starting a transaction by sending the BEGIN command and then I
update a table and then send a ROLLBACK command to try 
and abort the transaction.  It doesn't seem to be working.  Even though I've
done a rollback the transaction still goes through.  

When I start the transaction I get this message on the Linux box console
NOTICE:   BeginTransactionBlock and not in default state

This indicates that there is a transaction already in process.  I don't know
how that can be.

When I issue the rollback command I get this message
NOTICE:  UserAbortTransactionBlock and not in in-progress state

This indicates that there is no transaction in progress.  There sure should
be.

I tried all of the above in psql and it works fine.  Is this something that
just won't work over a TCP/IP connection?

Any suggestions on how I can get transactions to work would be greatly
appreciated,

TIA,

Barry




Re: [SQL] TRANSACTIONS and TCP/IP

От
Tom Lane
Дата:
Barry Baldwin <bbaldwin@indyme.com> writes:
> I've got postgres 6.5.2 running on a Linux box and I'm developing a client
> app in Delphi.  The client sends SQL commands via TCP/IP.  
> I've tried starting a transaction by sending the BEGIN command and then I
> update a table and then send a ROLLBACK command to try 
> and abort the transaction.  It doesn't seem to be working.

I don't know anything about Delphi, but it sure sounds like something
in the interface software you're using is sending BEGIN and COMMIT
commands for you.  This feature is commonly called autocommit --- look
for documentation on how to turn it off.

> I tried all of the above in psql and it works fine.  Is this something that
> just won't work over a TCP/IP connection?

No, connection type hasn't got anything to do with it...
        regards, tom lane


Re: [SQL] TRANSACTIONS and TCP/IP

От
George Moga
Дата:
Barry Baldwin wrote:

> Hi,
>
> I've got postgres 6.5.2 running on a Linux box and I'm developing a client
> app in Delphi.  The client sends SQL commands via TCP/IP.
> I've tried starting a transaction by sending the BEGIN command and then I
> update a table and then send a ROLLBACK command to try
> and abort the transaction.  It doesn't seem to be working.  Even though I've
> done a rollback the transaction still goes through.
>
> When I start the transaction I get this message on the Linux box console
> NOTICE:   BeginTransactionBlock and not in default state
>
> This indicates that there is a transaction already in process.  I don't know
> how that can be.
>
> When I issue the rollback command I get this message
> NOTICE:  UserAbortTransactionBlock and not in in-progress state
>
> This indicates that there is no transaction in progress.  There sure should
> be.
>
> I tried all of the above in psql and it works fine.  Is this something that
> just won't work over a TCP/IP connection?
>
> Any suggestions on how I can get transactions to work would be greatly
> appreciated,
>
> TIA,
>
> Barry
>
> ************

I belive you use ODBC for conection. I never use PostgreSQL ODBC but in ACCESS
ODBC if you want to use transaction, you must use, before your transaction:

dbc set autocommit off

where dbc is your database conection. After you finishing your transaction:

dbc set autocommit on

I hope this help you!


Best regards,   George Moga,   george@cicnet.ro


P.S. Sorry for my english.




Re: [SQL] TRANSACTIONS and TCP/IP

От
Vladimir Terziev
Дата:
  What kind of connection you use?
  Embeded SQL in your Delphi source ot ODBC?

Vladmir

On Wed, 15 Dec 1999, Barry Baldwin wrote:

> Hi,
> 
> I've got postgres 6.5.2 running on a Linux box and I'm developing a client
> app in Delphi.  The client sends SQL commands via TCP/IP.  
> I've tried starting a transaction by sending the BEGIN command and then I
> update a table and then send a ROLLBACK command to try 
> and abort the transaction.  It doesn't seem to be working.  Even though I've
> done a rollback the transaction still goes through.  
> 
> When I start the transaction I get this message on the Linux box console
> NOTICE:   BeginTransactionBlock and not in default state
> 
> This indicates that there is a transaction already in process.  I don't know
> how that can be.
> 
> When I issue the rollback command I get this message
> NOTICE:  UserAbortTransactionBlock and not in in-progress state
> 
> This indicates that there is no transaction in progress.  There sure should
> be.
> 
> I tried all of the above in psql and it works fine.  Is this something that
> just won't work over a TCP/IP connection?
> 
> Any suggestions on how I can get transactions to work would be greatly
> appreciated,
> 
> TIA,
> 
> Barry
> 
> 
> 
> ************
> 
>