Üdv!
A master-detail példát próbálom Lazarus-ban:
wiki.freepascal.org/MasterDetail
A különbség nálam, hogy PgSQL alatt van a DB:
master table: id,name,desc
detail table: detid,id,detailname
A master DBGrid+DBNavigator és a detail DBGrid+DBNavigator beállítva. A detail táblában az idegen kulcs is meg van adva adatbázis szinten.
Mi kell ahhoz, hogy a master Grid-ben álló rekordhoz tartozó detail Grid a detail rekordokat hozza fel?
A detail Gridben az SQL:
SELECT * FROM detail WHERE id=:id;
Most csak így működik a dolog, hogy a masterSQLQuery AfterScroll eseményébe:
procedure TForm1.SQLQuery1AfterScroll(DataSet: TDataSet);
begin
// after scroll
SQLQuery2.ParamByName('id').AsInteger:=SQLQuery1.FieldByName('id').AsInteger;
// refresh detail records
SQLQuery2.Close;
SQLQuery2.Open;
end;
Mi lenne a szép megoldás?