Subject Re: [IBO] 4.3: TDataset Parameter Value wrong
Author Jason Wharton
Ed,

> If I explicity set param.Bound := False after the creation of the
> form (before doing anything with the dataset) everything seems to
> work fine.

I was right about what the issue is. I've researched it and understand it
clearly now.

I looked at the way TParam stores itself in the DFM and it will only store
its Value there if Bound is set to true. This means that outside of
master-detail linkage its value was manually set somehow. Once this takes
place, this effectively removes a parameter from being changed via
master-detail linkage. In the case of the application you sent me, you have
a Value stored in the DFM for the input parameter. Thus, when that value is
read back from the DFM it will cause the Bound setting to be true and
maintain the removal from master-detail.

Thus, I have to conclude that IBO is actually coded correctly and doing what
it should. You will need to hunt down your TParams stored in DFM and look
for Value entries on params that you really want for master-detail linkage
and remove them.

Here's where IBO needed correction and I have done it already. When at
design-time a paramter value would be set in a master-detail link I wasn't
properly keeping the Bound flag set to false. Therefore, a value from master
detail stuff was being stored in the DFM incorrectly. With these Value
entries left over in the DFM they are now tripping things up. That's why you
are freshly seeing this.

I need to add an entry in my release notes about this so that people will be
forwarned to scan through their DFM's and clear out Param.Value settings if
they intend to use those for master-detail linkage.

Thanks,
Jason Wharton
http://www.ibobjects.com