[ cdjole @ 23.10.2008. 00:14 ] @
Radim aplikaciju za rad sa nekom bazom (access baza je u pitanju), zavrsio sam posao oko unosa podataka u tabele i sada sam poceo da pravim pregled tih podataka, zavisno od zadatih uslova.
Konkretno, imam dve tabele, tblRadnici i tblDecaRadnika (da se lako zakljuciti sta se nalazi u tabelama :)). Polje koje ih veze je RadnikID. Ono sto sam zamislio je da u gornjem dbgridu ispisujem
podatke o radnicima, a da se klikom na odredjenog radnika u donjem grid-u prikazuju podaci o njegovoj deci. E sad, ja sam ceprkao po netu, naso sam ovaj sajt http://support.microsoft.com/kb/189657,
a nasao sam i primer u BCB 6-ici koji bas ovo radi. Medjutim, ja kada to odradim na svom primeru (da napomenem da radim u Borlandu 2007), nece da radi.

Postavim 2 ADODataSet-a i vezem sa DataSource-ovima. Gornji DataSet povezem sa ADOConnection-om, unesem u CommandText properti SHAPE komandu i to kao:

SHAPE {select * from tblRadnici}
APPEND ({select * from tblDecaRadnika} AS Deca
RELATE RadnikID TO RadnikID)

I sad bi trebalo da u drugom DataSet-u imam ponudjeno da izaberem DataSetField u propertijima, ali kod mene je to prazno.

U primeru iz BCB 6 je ovako:

SHAPE {select * from customer}
APPEND ({select * from orders} AS Orders
RELATE CustNo TO CustNo)

i u drugom dataset-u ima kod DataSetField da se izabere CustomersOrders.

Ja kad pokusam da aktiviram gornji dataset, kaze "Invalid SQL statement; expected DELETE, INSERT, PROCEDURE, SELECT or UPDATE. Zbog ovoga i ne mogu da dodam polja u FieldsEditoru od dataset-u.

Ovo mi je prvi put da radim sa SHAPE i verovatno sam nesto prevideo. Mozda ima veze sto ja za ADOConnection koristim Microsoft.Jet.OLEDB.4.0 provajdera, a u primeru je MSDataShape.
Pokusao sam da promenim to kod sebe, da pokusam sa ovim drugim, ali mi izbacuje gresku da ne moze da inicijalizuje provajdera.

Ako neko zna u cemu je problem ili ako ima ideju kako da se ovo drukcije odradi, bio bih mu jako zahvalan na pomoci.
[ itf @ 23.10.2008. 09:16 ] @
Tebi treba master-detail odnos tablica. Primjerice, ako radiš s TADOTable komponentama onu glavnu tablicu tblRadnici samo aktiviraš, dok drugoj tablici postaviš MasterSource (prva tablica), a zatim i MasterFields (po kojim ključevima se radi relacija). Ovaj MasterFields je u pravilu uvijek isti kao i u Accessu. Znači, zapravo, ti sada trebaš prvu i drugu tablicu povezati prema primarnom ključu prve tablice.

Tad ćeš imati automatsko filtriranje druge tablice u ovisnosti o aktivnom zapisu prve tablice.
[ cdjole @ 23.10.2008. 11:11 ] @
E to je to, radi posao. Hvala.

Iako mi vise nije potrebno za ovaj primer, ADO SHAPE komanda mi deluje vrlo zanimljivo, tako da ako je neko radio s njom u Borlandu 2007, molio bih ga neka ostavi komentar.