Subject RE: [IBO] Params ? not working, ? or master detail relationship. HELP PLEASE!
Author adrian
Thanks Helen.
Only asked for Jason to comment on the newer version based on Matthias's
help regarding the issue.
Jason needs the time off, and really don't wish to be a bother to him.
Will have a look at the logic, and get back to you.

Chow
Adrian


-----Original Message-----
From: Helen Borrie [mailto:helebor@...]
Sent: 11 April 2004 10:09 AM
To: IBObjects@yahoogroups.com
Subject: Re: [IBO] Params ? not working, ? or master detail
relationship. HELP PLEASE!


Hello Adrian,

At 07:00 PM 10/04/2004 +0200, you wrote:
>I upgraded to the latest release, and then did a build all.
>Previously this module was working just fine.
>Now it returns no records
>
>{Master}
>PraxData.IODIBOQuery.Active := True;
>{Childs datasource is set}
>PraxData.PPatientQuery.DataSource := PraxData.IODDataSource;
>PraxData.PPatientQuery.SQL.Clear;
>PraxData.PPatientQuery.SQL.Add('SELECT * FROM PATIENT WHERE
>PATIENTID=:IODPATID');
>PraxData.PPatientQuery.Open;
>PraxData.PPatientQuery.Active := True;
>
>Previously PPAtientQuery would be populated with data, now it isn't.
>
>I have changed none of my source code at all!
>Has it got something to do with the parameter.
>The PPatientQuery is in a DATAMODULE, and I'm using TIBOQuery's
>The original PPatientQuery definition doesn't have any parameters. It
is
>just in this code portion that a parameter is required.
>

I see from another post that you want Jason to answer this himself. I
guess you will be waiting a few days for that, as Jason is very much
detached from work issues during Easter, because of his church
commitments.

In the meantime, I can't offer a reason why your code worked in an older

IBO version and doesn't work now with IBO 4.3. My observation is that I

would not have expected it to work in *any* IBO version at all, because
the
logic is wrong...so perhaps you are seeing a newer version of IBO that
is
no longer tolerant to the logic error in your code.

For the master-detail logic to work properly for the code model you
provided, the attributes of the master-detail relationship need to be
established *before* either of the datasets is opened. The way you have

it, you open the dataset and *afterwards* try to set up the
detail-to-master relationship.

Could you set up a test using this sequence instead?

{Set master query's SQL}
{assume that is done}

if not PraxData.IODIBOQuery.Prepared then
PraxData.IODIBOQuery.Prepare;

{Childs datasource is set}
PraxData.PPatientQuery.SQL.Clear;
PraxData.PPatientQuery.SQL.Add('SELECT * FROM PATIENT WHERE
PATIENTID=:IODPATID');
PraxData.PPatientQuery.DataSource := PraxData.IODDataSource;

if not PraxData.PPatientQuery.Prepared then
PraxData.PPatientQuery.Prepare;
(At this point, the Datasource linking should take care of populating
the
'IOPATID' parameter; or throw an exception if it can't connect the two)

PraxData.IODIBOQuery.Open;
(Here, the master dataset should open the detail dataset; and then open

each new detail set as you scroll through the master)

Another thought: how old is your old IBO version? Perhaps it is too
old
to know about KeyLinks...

Helen





________________________________________________________________________
___
IB Objects - direct, complete, custom connectivity to Firebird or
InterBase
without the need for BDE, ODBC or any other layer.
________________________________________________________________________
___
http://www.ibobjects.com - your IBO community resource for Tech Info
papers,
keyword-searchable FAQ, community code contributions and more !




_____

Yahoo! Groups Links


* To visit your group on the web, go to:
http://groups.yahoo.com/group/IBObjects/


* To unsubscribe from this group, send an email to:
IBObjects-unsubscribe@yahoogroups.com
<mailto:IBObjects-unsubscribe@yahoogroups.com?subject=Unsubscribe>


* Your use of Yahoo! Groups is subject to the Yahoo! Terms of
Service <http://docs.yahoo.com/info/terms/> .




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