Subject Re: [IBO] Master detail detail and MasterParamLinks
Author Marco Menardi <mmenaz@lycosmail.com>
--- In IBObjects@yahoogroups.com, Helen Borrie <helebor@t...> wrote:
> At 11:50 PM 10-12-02 +0000, you wrote:
>
> > > What happens if you qualify the columns at all levels, i.e.
> > >
> > > D1.P_ISBN=MA.ISBN
> > >
> > > and
> > >
> > > D2.P_D2_ISBN=D1.P_ISBN
> > >
> > > Helen
> >
> >Well, MA has an union, and even if I get the data from the same set of
> >tables/fields, if I qualify D1.P_ISBN=MA.ISBN I get an error (field
> >not found), so I have to use D1.P_ISBN=ISBN
> >If I qualify D2.P_D2_ISBN=D1.P_ISBN I get the error Field not found
> >too... (Fieldname D1.P_ISBN not found)
> >Sigh!
>
> Oh gosh! why didn't you say you were trying to use a union-ed set as a
> master?
> I have no theory about how a master-detail relationship would work
where
> the master has no real database keys (as is the case with a union-ed
> set). You can't perform ANY dml on a union-ed set.

It's for a report, so no DML involved, read only IB_Query. And MA
(master) -> D1 (first level detail), where MA has the union, works
fine. The only problem is that once D1 has a parameter (select * from
y where id=:P_MAPAR), you can't reference it from D2 in MasterParamLinks.
If you want, remove MA, so you will have D1 with parameters (assigned
by Delphi at runtime), and D2 that can't reference D1 params, only D1
field names.

Now I've solved with a calculated field (D1 has a calculated field,
and I assign the param value to this field), so D2 can reference THAT
calculated field for MasterParamLinks.
I think that a) you can't use parameters now, so IBO code needs to be
improved b) there is a very small bug in IBO code that ignores parameters.

In any case, I think it would be useful this "cascade" effect.

regards
Marco Menardi