Thread: TRANSACTIONS and TCP/IP
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
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
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.
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 > > > > ************ > >