|Subject||Re: [firebird-support] Strange performance problems|
>I have run into this many times with IB6 and IBExpert. If I open a table forHi Raf,
>edit in IBExpert and dont commit the transaction and my application tries to
>read that record, my app will just sit there and wait until I commit or
>I can't remember if I could duplicate this issue with IBConsol.
>Btw, can you duplicate the behavior by running a script in IBConsole that
>your application behavior?
We don't use tables at all - only queries and stored procedures. The
stored procedures all happen within a transaction context, and the data set
and the transaction committed as soon as the client application is finished
In many cases, the code looks something like this :
function getvalue(recordid : integer) : string;
ReturnValue : String;
ReturnValue := 'NONE';
with adataset do
if active then close;
if not transaction.intransaction then
//fill the input parameters and open the dataset
ReturnValue := adataset.fieldbyname('value').AsString;
//exception handling code here
result := ReturnValue;
There is also exception handling code within the procedure. The point is
that the database
transactions are as atomic as I can possibly make them - they never last
longer than they
absolutely have to.
The other point is that if it were a problem with transactions, I would
expect that the
problem ALWAYS happens. Instead, the problem is intermittent, which is one
of the reasons
that it is difficult to identify.
[Non-text portions of this message have been removed]