Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Dinamicko (RunTime) setovanje TDataSource-a

[es] :: Pascal / Delphi / Kylix :: Dinamicko (RunTime) setovanje TDataSource-a

[ Pregleda: 2122 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

vortex77

Član broj: 91694
Poruke: 124
*.dynamic.sbb.co.yu.



+1 Profil

icon Dinamicko (RunTime) setovanje TDataSource-a27.09.2007. u 12:46 - pre 200 meseci
Kako da dinamicki menjam TDataSoure ?

Ideja je da se omoguci unos "proizvoljnih" stringova, koji bi kasnije posluzili za kreiranje i setovanje Query-ja (DBEdit polja) u runtime-u.

Tacnije... imam program koji treba da formira izvestaje vezane za DB i tom prilikom da omoguci korisniku da sam izabere koje polje hoce da prikaze na izvestaju (nesto izmedju worda i DB-a). Pre samog formiranja izvestaja kreira se .ini fajl u kome se setuju sve tabele i njihova polja, dostupna korisniku. Posto kreirani izvestaji, kasnije, treba da se povezu sa konkretnim programom potrebno je navesti i TDataSource za svako polje (sto se takodje postavlja prilikom podesavanja .ini-a).

Znaci, nakon kreiranja u ini fajlu se nalazi spisak tabela, polja i njihovih datasource-va. Ucitavanje u program je putem stringova, sto i jeste problem jer mi Delphi stalno prijavljuje gresku (normalno...) "Incopatibile types TDataSource and String".

Jasno mi je zasto se ova gresaka javlja, ali nikako ne mogu da pronadjem nacin da ovaj problem resim!?

 
Odgovor na temu

priki

Član broj: 24732
Poruke: 700
*.amis.net.

ICQ: 174153511


+26 Profil

icon Re: Dinamicko (RunTime) setovanje TDataSource-a27.09.2007. u 12:58 - pre 200 meseci
heh, ne može to tako jednostavno kao što ti misliš
mogao bi recimo preko record-a

taj record da ima neki član otprilike:
tds: TdataSource
pa onda pointer na taj record, recimo:

Code:

type TMyRecord
  tds: TDataSource
end
PMyRecord=^TMyRecord


onda neku, recimo TStringList-u u koju ćeš učitati sva
tvoja imena tabela i za svako ime tabele u TStringList-i
kreirati instancu TDataSourc-a,
znači jedna tabela, jedna instanca TDataSourc-a

sve to možeš uraditi kroz petlju i sa TStringList.AddObject()

pozdrav

 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: Dinamicko (RunTime) setovanje TDataSource-a27.09.2007. u 15:24 - pre 200 meseci
> Tacnije... imam program koji treba da formira izvestaje vezane za DB i tom prilikom da omoguci korisniku da sam izabere koje polje hoce da
> prikaze na izvestaju (nesto izmedju worda i DB-a). Pre samog formiranja izvestaja kreira se .ini fajl u kome se setuju sve tabele i njihova
> polja, dostupna korisniku. Posto kreirani izvestaji, kasnije, treba da se povezu sa konkretnim programom potrebno je navesti i TDataSource za
> svako polje (sto se takodje postavlja prilikom podesavanja .ini-a).

Ako se svi DS nalaze u jednom DataModulu, onda, Field.DataSource := TDataSource(DataModule.FindComponent(NazivDSKomponente));
 
Odgovor na temu

cepak

Član broj: 158859
Poruke: 15
*.smin.itsisp.net.



Profil

icon Re: Dinamicko (RunTime) setovanje TDataSource-a04.10.2007. u 23:28 - pre 200 meseci
Uopste nemas potrebu, ako sam te dobro razumeo, da menjas TDataSource. Tebi je TDataSource uvek vezan na konkretan, recimo query, gde dinamicki menjas sql, ili je vezan na neku tabelu gde menjas naziv tabele i polja koja ucitavas, a nemoras uopste da kreiras novu instance komponente.
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Dinamicko (RunTime) setovanje TDataSource-a

[ Pregleda: 2122 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.