Not work Master-Detail when Detail has Parameter otCursor and Different count of result set

abnAnatol

Member
Hello,

Not work Master-Detail when Detail has Parameter otCursor and Different count of column result set

OracleDataSet Master has ordinary sql:
select * from dba_tables

but OracleDataSet Detail has sql

begin
employee.GetDataTable(:p_data_table, :table_name);
end;

for each table from Master Dataset, Detail Dataset returns data from this table

When Detail Dataset refresh call procedure
TOracleDataSet.SyncDetails(Clear: Boolean);

But FieldDefs isn't refreshed, we while rewrited as

if not Skipped then
begin
isCursor := False;

for i := 0 to Detail.Variables.Count - 1 do
begin
if Detail.Variables.Data(i).buftype = otCursor then
begin
isCursor := True;
Break;
end;
end;

if isCursor then
begin
Detail.Close;
Detail.Fields.Clear;
Detail.Open;
end
else
Detail.Refresh;

How does It correct?

Thanks very much
 
Standard TOracleDataset behavior is to just refresh the detail dataset when the master record changes. If the field definitions are different when the master dataset changes, then you cannot use the standard method but will need to implement your own master/detail synchronization.
 
Back
Top