Skip to Content.
Sympa Menu

freetds - Re: Free TDS/JDBC Driver problem .Help

freetds AT lists.ibiblio.org

Subject: FreeTDS Development Group

List archive

Chronological Thread  
  • From: "Curt Hagenlocher" <curt AT hagenlocher.org>
  • To: "TDS Development Group" <freetds AT franklin.oit.unc.edu>
  • Subject: Re: Free TDS/JDBC Driver problem .Help
  • Date: Tue, 10 Jul 2001 11:13:55 -0700


"Kevin Fries" <kelfink AT yahoo.com> wrote:

> Locally, I've re-coded the source to issue the explicit rollback
> only upon close of the Connection. My version still loops through
> each Statement in the connection, rolling back each. But when
> Connection.commit() is called, my version rolls through each
> Statement and commits it. I think this is much closer to the
> behavior of other JDBC drivers.

I don't think there's any obviously correct behavior here.
Transactions only make sense in the context of the underlying
server process, and (*especially* in FreeTDS_JDBC) there's no
obvious correlation between a statement and a spid. Moving
transaction control to the Connection could lead one to believe
all sorts of dangerous things about the relatedness of unrelated
server processes.

> Related to the commit, I wanted to ask this of the JDBC crew. Has
> anyone compared issuing the "set implicit_transactions on" call to
> issuing a specific "BEGIN TRAN" call? I don't know if this works
> with sybase, but this is the way other commercial drivers work, so

All the MS SQL Server ODBC drivers going back six years use the
"set implicit_transactions" construction. I imagine it's to allow
this to be called multiple times. Otherwise, every "begin tran"
has to be matched with a "commit tran", and there's not generally
an ODBC/JDBC interface to return the current transaction level.

--
Curt Hagenlocher
curt AT hagenlocher.org




Archive powered by MHonArc 2.6.24.

Top of Page