Lazarus 2.0.8 (2020.04.16.)
Letöltés

file Master - detail

  • makgab
  • makgab profilkép
  • Törzstag
  • Törzstag
  • Hozzászólások: 280
  • Karma: -1
  • Köszönetek: 1

makgab létrehozta a témát: Master - detail

Ü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?
#1566