On Wed, 2006-04-19 at 13:22 +0300, Adrian Maier wrote:
> On 4/19/06, Michael Van Canneyt <[EMAIL PROTECTED]> wrote:
> > On Wed, 19 Apr 2006, Adrian Maier wrote:
> >
> > > On 4/19/06, Joost van der Sluis <[EMAIL PROTECTED]> wrote:
> > >>> Is this a problem with PostrgreSQL itself or the component in lazarus
> > >>> wrapping it?
> > >>
> > >> It's a problem of postgres. A transaction 'block' is started with the
> > >> sql-command 'begin', from that comand on, all queries are executed
> > >> within that transaction. Using another connection is not possible.
> > >> Unless, offcourse, you start a new connection. Or closes the transaction
> > >> (commit, rollback etc)
> > >
> > > Please pardon me for jumping in the middle of the thread, but your
> > > phrase made me really curious. The behaviour you described seems
> > > to be the normal one, once you execute "begin" (transaction) . What
> > > other behaviour would someone expect postgres to have ?
> >
> > To allow several concurrent transactions.
>
> Is this implemented inside the database engine, as some special SQL
> commands ? Is it possible to start more transactions simultaneously
> from firebird's interactive utility? how does one specify that a
> certain
> SQL command has to be executed inside one transaction or another ?
> > Interbase/Firebird allows to start several concurrent transactions in
> > 1 connection. AFAIK Oracle and MS-SQL too (named transactions).
>
> I'm not sure about this.
> Oracle has named transactions, but those are just labels that are given
> to long-running transaction - so that they can be easier identified. Also,
> in Oracle it is possible that a stored procedure be executed in an
> 'autonomous' transaction ( i've used this once for writing a procedure
> that wrote debugging information to a table ; in case of error the messages
> would have been rolled back unless they were inserted by an autonomous
> transaction). But i believe that these autonomous transactions are a
> different
> beast from the feature we are talking about.
Oracle's transactions are the most flexible. You can do the same thing
with them as with the Firebird transactions, and far more.
If you use the C-api to execute a query, you have to/can provide the
transaction in which the query should get executed.
I don't know if that could also be done with SQL-statements, or which
statements that should be.
JoJo,
Joost.
_________________________________________________________________
To unsubscribe: mail [EMAIL PROTECTED] with
"unsubscribe" as the Subject
archives at http://www.lazarus.freepascal.org/mailarchives