delphi -DBGrid aktualizace dat spojených tabulek
Dobrý den, nenašel by se tu zkušený programátor, který by mi mohl poradit?
Mám takový problém...mám dvě tabulky - OBJEDNAVKY, VYROBKY, propojené přes vyrobky_id = id_vyrobky. Chci zobrazit v DBGridu, místo vyrobky_id, název výrobku z tabulky VYROBKY, což vytvořím pomocí SQL dotazu. Následně naplním pickList sloupce nazev_vyrobku obsahem tabulky VYROBKY. Vše je OK do doby, než se změní název výrobku, což je pochopitelné. Potřeboval bych nějakým způsobem aktualizovat záznam. Nevíte někdo prosím jak na to? Moc díky za odpověď.
Pochopil jsem to dobre, ze v DB gridu mas vysledny select ze 2 tabulek a chces primo v gridu data editovat?
Ano, je tam něco takového
Potřebuji v podstatě vykonat update pouze tabulku OBJEDNAVKY, neboť ty VYROBKY jsou tam právě jen kvůli tomu nahrazení názvu výrobku místo id_výrobku.
Vytvořil jsem něco jako toto (dole). Příkazy se spouští u adoquery, který vykoná ten select. Myslel jsem, že bych toto spustil BeforePost(), a samotné post nějak zakázal. Vím, není to úplně nejlepší řešení, ale nic jiného mě nenapadá...
Oprava selectu
Select * from OBJEDNAVKY o left join VYROBKY v on (v.id_vyrobky=o.vyrobky_id ) WHERE objednavka_id='+IntToStr(id)+' order by poradi_zakazky ASC;
A jakou technologii používáš na připojení k databázi? Pro BDE se podívej na kompoenntu UpdateSQL
Pokud pouzivas ADO, tak se podivej treba na udalost OnRecordChangeComplete. Tam si budes muset napriklad napsat obsluhu pro vlozeni/opravu/mazani a dalsim SQL prikazem to opravit v datech.
Dalsi moznost je neopravovat to primo v gridu, ale vyvolat dalsi okno, kde si uzivatel opravi, co potrebuje a na zaklade zmeny ty provedes zmenu v tabulce.