[fpc-devel] IBConnection and transactions

Michael Van Canneyt michael at freepascal.org
Sun Apr 30 20:52:21 CEST 2006



On Sun, 30 Apr 2006, Joost van der Sluis wrote:

> On Sun, 2006-04-30 at 20:09 +0200, Michael Van Canneyt wrote:
> > On Sun, 30 Apr 2006, Joost van der Sluis wrote:
> > > I have a problem that I do not understand.
> > >
> > > the following doesn't work with firebird:
> > >
> > >   Fconnection.ExecuteDirect('create table FPDEV (id INT)');
> > >   Fconnection.ExecuteDirect('insert into FPDEV(id) values (1)');
> > >
> > > But the following does:
> > >
> > >   Fconnection.ExecuteDirect('create table FPDEV (id INT)');
> > >   FConnection.Transaction.commitretaining;
> > >   Fconnection.ExecuteDirect('insert into FPDEV(id) values (1)');
> > >
> > > But both statements are executed within the same transaction?
> >
> > No they are not. CommitRetaining is like
> > Commit;
> > Starttransaction;
> > only keeps the resources of the current transaction.
> >
> > In all the years I worked with interbase/firebird,
> > I've learned to explicitly commit after each DDL statement.
>
> Ok, that explains it. But in fact that's a bug in Interbase/Firebird
> imho...

It is. They know about it, too.

Michael.




More information about the fpc-devel mailing list