Subject Re: [firebird-support] dbExpress and transactions
Author David Johnson
No, sir. Borland's.
That is kind of important to include, i guess. :o)


On Fri, 2005-11-18 at 09:49 +0100, Martijn Tonies wrote:
>
> > This may be a side issue for you ...
> >
> > With this configuration, the dbExpress driver failed after an exact
> > number of transactions in my initial performance testing attempts
> > (2014 is the number I remember).
>
> With what dbExpress driver?
>
> Ours?
>
> With regards,
>
> Martijn Tonies
> Database Workbench - tool for InterBase, Firebird, MySQL, Oracle & MS SQL
> Server
> Upscene Productions
> http://www.upscene.com
> Database development questions? Check the forum!
> http://www.databasedevelopmentforum.com
>
> > Of the connectors I tested, only IBO was even able to complete the test
> > suite. It was also the fastest by 30% or better.
> >
> > This testing eventually led me to abandon Delphi for the applications I
> > am doing, because I was able to establish that the Delphi model would
> > not scale to meet my needs.
> >
> > Java and the jaybird driver, on the other hand, scales nicely. With
> > SWT, you can make a GUI that is every bit as nice as a Delphi GUI, and
> > is cross platform in "out of the box" binary deployments.
> >
> > On Tue, 2005-11-15 at 14:37 +1100, Peter Lee wrote:
> > > Hi Everybody,
> > >
> > > I have an application that has been deployed using FB 1.52, written in
> > > D6 and dbExpress for data access. We're preparing some updates that
> > > require some database changes, and are having some issues running some
> > > scripts...
> > >
> > > When the application starts, it checks to see what version of the
> > > database is present on disk, and upgrades it using our scripts as
> > > necessary. We though we should wrap this in a transaction, so that if
> > > something goes wrong, we've not done a 'half way' update.
> > >
> > > So, we start a transaction, and then start sending our sql commands from
> > > our script, if there's an exception, we'll do a rollback.
> > >
> > > ===
> > >
> > > transDesc.TransactionID := 1;
> > > transDesc.IsolationLevel := xilREADCOMMITTED;
> > >
> > > dbConnection.StartTransaction(transDesc);
> > > try
> > > < loop here to go through various lines etc>
> > > dbConnection.ExecuteDirect(sql);
> > >
> > > dbConection.Commit(transDesc);
> > > except
> > > dbConnection.Rollback(transDesc);
> > > end;
> > >
> > > ===
> > >
> > > Before we had the explicit StartTransaction, Commit, Rollback etc, the
> > > script ran fine. Now, it fails on this second the following lines with
> > > this error; 'violation of PRIMARY or UNIQUE KEY constraint "INTEG_113"
> > > on table "C_CHORD" '. I've included the first line to show the only
> > > other changes to the C_CHORD table that the script would have already
> done.
> > >
> > > ALTER TABLE C_CHORD ADD EDITABLE SMALLINT DEFAULT 1;
> > >
> > > UPDATE C_CHORD C SET C.EDITABLE = C.EDIT;
> > >
> > > It also runs fine in IBExpert... I'm sure this has something to do with
> > > my lack of understanding of transactions - or dbExpress doing some
> > > sneaky transaction stuff - can anybody help?
> > >
> > > Thanks,
> > >
> > > Peter Lee
> > >
> >
> >
> >
> >
> > ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> >
> > Visit http://firebird.sourceforge.net and click the Resources item
> > on the main (top) menu. Try Knowledgebase and FAQ links !
> >
> > Also search the knowledgebases at http://www.ibphoenix.com
> >
> > ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> >
> > Yahoo! Groups Links
> >
> >
> >
> >
> >
>
>
>
>
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>
> Visit http://firebird.sourceforge.net and click the Resources item
> on the main (top) menu. Try Knowledgebase and FAQ links !
>
> Also search the knowledgebases at http://www.ibphoenix.com
>
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>
> Yahoo! Groups Links
>
>
>
>
>
>