Subject Re: [IBO] URGENT: Master Detail and "Invalid Variant Operation"
Author Helen Borrie
At 08:11 PM 13/07/2004 +0000, you wrote:
>I had fully functioning master-detail links set up and now they don't
>work. 2 things have changed though I don't see what is causing the
>problem. The 2 things that have changed are:
>#1. I'm now using Firebird instead of Interbase 6.
>#2. I installed the newest edition of interbase objects.
>After making these 2 changes the master-detail links cause the
>following error: Invalid Variant Operation.
>This is the same error that would result if there were undefined
>parameters in an IBO query, but that is not the case here, using
>tables. I am using an IBO table as the detail. The master table is
>an infopower table connecting to an IBM As/400 (this connection is
>fine btw).
>If I understand correctly, a master detail relationship requires only:
>a. reference to the master datasource
>b. reference to the master data field as in "CMCUS=CMCUS"
>c. keylinks not auto-defined but set to the linking field "CMCUS"

Keylinks isn't a master-detail linkage. The detail's Keylinks should be
the primary key of the detail table, the master's KeyLinks should be the
primary key of the master.

You could also try providing full table identifiers for the master link.

Note that there might be other less visible problems when changing from IB
6 to Firebird 1.5. Some that might bite you are:

1. Be *certain* that your application is loading the right client library.
This is the most common cause of problems with migrations.
2. Pre-Firebird IBO 4.3 versions automatically provided a workaround for a
long-standing IB bug with parameter ordering, that was fixed in Fb
1.5. IBO 4.3-onwards automatically performs an abstruse query to establish
whether it's looking at a Fb 1.5 database. If you didn't upgrade your
database to Fb 1.5, it's possible that you'll get misbehaviour.
3. Firebird is much less tolerant of ambiguous SQL in joined and subqueried
4. Don't overlook the possibility that the version of Infopower you are
using is too old to recognise the ODS 10 data types. The variant error
could be an indication of this.

Hope this helps some.