Subject Re: [ib-support] Re: RefreshRecord bug
Author Marcos V. Dufloth
Are you merging left outer join sintax with joins in where clause?


----- Original Message -----
From: phoove27
Sent: Thursday, March 14, 2002 1:25 AM
Subject: [ib-support] Re: RefreshRecord bug

> This is not a Delphi list. It is for Firebird and InterBase
> questions. You'll need to take your questions about failing Delphi
> methods to one of the b.p.d newsgroups.

My very simple test program works fine when running with the
commercial version of Interbase 6.0 that came with Delphi. The
program fails only when the new Firebird 1.0 server is running
(actually, it also failed with Firebird Release Candidate 2). I'm not
sure that many Delphi people would know which (if any) subtle
differences between Interbase and Firebird need to be accounted for
in Delphi programs.

> But, just so that your post doesn't go completely unanswered:
> The Delphi exception appears to indicate that you have no primary
> key in the underlying table or, alternatively, the output dataset
> does not supply unique rows.

Thanks for attempting to answer my question. In fact I do have a
primary key on the CUST_NO field, and the output dataset consists of
exactly four unique rows.

> >I can edit, save, and cancel. I can call "Refresh" on the dataset
> >with no problem. The problem only occurs when I attempt to call
> >the "RefreshRecord" method.
> As above. Refresh closes and reopens the dataset. RefreshRecord
> needs to have a successful CommitRetaining within a READ COMMITTED
> transaction; but it looks as if the Commit(retaining) is failing
> because of missing keys.

The transaction is set to READ COMMITED. Initially the Delphi
dbExpress database connection component was set at its default of
CommitRetaining=False; I changed to CommitRetaining=True and re-ran
the program with no success. As before, the program worked fine with
the Interbase 6.0 server but failed with the Firebird 1.0 server.

> >I am using Firebird 1.0 for both Linux and Windows. The problem
> >always existed with the Windows Firebird, but the problem with the
> >Linux Firebird started only after I downloaded the latest version
> >last night. I did not receive the error message when using an older
> >version of Linux Firebird.
> On this list, it's impossible to troubleshoot an SQL problem unless
> you provide the exact statement that is failing. In Delphi, which
> does its own (hidden) parsing of SQL, you will only get this by
> running an SQL monitor over the API - then you can paste the SQL
> and post intelligent questions that might have a chance of getting
> answered on this list.

I'm a newbie to Interbase, Firebird, and Delphi. From what you are
telling me, it sounds as though I would need to be an advanced user
to get help from this list.

I had hoped that perhaps some Interbase/Firebird afficionado might
have Delphi and be tempted to spend two minutes creating a simple
dbExpress application with a RefreshRecord operation and tell me if
they also receive errors with the Firebird Server (either RC2 or

> >Is this a bug in Firebird
> indefinable without the metadata and SQL info
> >a bug in Delphi
> Could be. Borland recently distributed a complete update pack for
> Delphi 6.

I have the latest update pack for Delphi 6.0. And again, the Delphi-
produced executable works exactly as expected when the commercial
Interbase 6.0 server is running.

> >or am I just missing something?
> Highly likely, considering your test code appears to do nothing to
> try to identify what is going on, e.g.
> Showmessage(MyQuery.Sql.Text) in your BeforePost event would
> probably be quite revealing.

I'm not sure that the "ShowMessage(MyQuery.Sql.Text)" pertains to
dbExpress with SQLDataSet -> Provider -> SQLClientDataSet ->
DataSource. At any rate, if I knew how to do this (or its dbExpress
equivalent) I would gladly do it.

> Inspection of variables in the debugger is always worth a shot.

What variables? I am not defining any variables in my very simple
test program.


Yahoo! Groups Sponsor

To unsubscribe from this group, send an email to:

Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service.

[Non-text portions of this message have been removed]