[ inherited @ 27.12.2006. 20:18 ] @
Gospodo,

treba mi mala pomoc od Vas. Citao sam malo iz Mastering Delphi 7 o TClientDataSet komponenti i .cds fajlovima. Interesuje me:

1) .cds fajlovi - kako se kreiraju, kako ih napraviti, pomocu kog alata?
2) pretpostavljam da preko FileName u TClientDataSet se taj .cds fajl kaci, ali hteo bih da on ne bude striktno vezan za tu lokaciju, nego, ako se sa jedne lokacije, premesti na drugu da opet lepo funkcionise, a ne da prijavljuje gresku kako ne moze naci podatke?
3) TClientDataSet - kako vrsiti sortiranje, nisam naisao na metod "sort"?
4) ne vezano za .cds i TClientDataSet, kako odraditi za skinove (npr. neki_skin.skn) situaciju iz pitanja broj 2?

Za pocetak, toliko.
Hvala unapred.
[ marcha @ 27.12.2006. 22:22 ] @
1. Koristis FieldEditor DataSet-a. Nakon uredjenja polja, desni klik na komponentu i odabers opciju Create Dataset. Pa onda opet desni klik i Save ...
2. Za ucitavanje iz datoteke koristis metodu MojCDS.LoadFormFile(NazivFajla.cds);
3. Zadavanjem vrednosti za property IndexFiledNames odredjujes polja po kojima ce se vrsiti sortiranje. Ukoliko zelis sortiranje po vise polja od jednom, onda nazive polja razdvojis sa ";". Mozes da koristis i indekse i property IndexName.
4.Nisam te bas razumeo....
[ inherited @ 28.12.2006. 13:09 ] @
Hvala, nesto sam odradio, bice jos koje pitanje u vezi CDS, mozda.
U vezi s pitanjem br. 4, pa da se skin ucitava ne vezano od lokacije gde se smesti. Znaci, ako je program i fajl skin.sn na C:\Folder, pa se prebaci na D:\Folder, da se ucita, tj. da Property FileName ili SkinName nije statican, nego prilagodljiv lokaciji. Nesto slicno kao kad odradimo da se Access baza sa Delphi programom ucitava bilo gde, samo da su i .exe i .mdb u istom folderu.
Valjda nisam ovo dodatno zakomplikovao?
[ savkic @ 28.12.2006. 17:01 ] @
> Valjda nisam ovo dodatno zakomplikovao?

Jesi, hajde ponovo ;) Ako pitaš kako da učitaš neki fajl iz dira gde ti je exe, to je lako, putanju do fajla možeš dobiti pomoću ParamStr(0) funkcije a odatle pomoću ExtractFilePath možeš dobiti dir koji posle ukomponuješ sa nazivom željenog fajla.
[ Miloš Baić @ 28.12.2006. 18:21 ] @
Pozdrav,

pokušaću da ti pomognem. Pretpostavljam da je većina isprobala VCLSkin komponente, pa s njom može da se odradi. Dakle, postaviš TSkinData1 na TForm1, obradiš event za TForm1 - OnCreate, npr.:
Code:
procedure TForm1.FormCreate(Sender: TObject);
begin
 SkinData1.SkinFile:= ExtractFilePath(Application.ExeName) + ExtractFileName('naziv_skina.skn');
 SkinData1.Active:= true;
end;

i to bi trebalo biti to.
[ inherited @ 29.12.2006. 12:33 ] @
Hvala obojici na odgovorima,

Savkicu na teorijskom resenju, upucivanje na ExtractFilePath, a Milosu na kodu. Inace, u helpu (D7), sam nasao nesto slicno sto je Milos postavio. Pretpostavljam da je sad to sablon za pozivanje bilo kojeg fajla!??? Ili ima neko i drugacije resenje?

Koliko sam skontao, .cds je binarni .xml?
Interesuje me, u praksi, kad se koriste .cds fajlovi? U kojim slucajevima? Ovako, amaterski, pretpostavljam kad je potrebno imati manje slozen projekat, npr. sa jednom tabelom koja sadrzi nekoliko kolona, ili evntualno kombinacija par .cds fajlova sa svojim kolonama?
[ morlic @ 29.12.2006. 16:28 ] @
Nema nikakvog pravila za koriscenje cds fajlova. Mogu se koristiti za sta god, dokle god se radi o pamcenju podataka u vidu tabele. Nisu zamena za bazu pogotovo ako ima medjusobno vezanih tabela i potrebe za kombinovanjem tih tabela kako bi se dobio jedan set kao rezultat. Takodje postoji i granicenje u smislu usporenja u radu kod vece kolicine podataka. Takodje, TClientDataSet ima i nekih bubica (bagova) koji mogu da idu na zivce, a mogu da dovedu i do gubitka podataka.
[ _v!rus_ @ 31.12.2006. 16:07 ] @
Citat:
...Takodje, TClientDataSet ima i nekih bubica (bagova) koji mogu da idu na zivce...


O da, itekako...

Npr. kada jednom definises polja i kreiras dataset sa [create dataset], NEMA TITA da izmenis strukturu polja, i taj posao se obicno svede na pravljeneje novog TCds-a, zatim copy-paste polja - izmena - pa opet create dataset.....pa onda opet eventi za sva polja, display format za sva polja...jao!

Ovo zna toliko da nervira, da sam na kraju presao na drugi memtable, iako se TCds dobija out-of-the-box.

E da, i obavezni midas.dll koji se uvek zaboravi :)
[ Miloš Baić @ 31.12.2006. 19:38 ] @
Citat:
_v!rus_: O da, itekako...

Npr. kada jednom definises polja i kreiras dataset sa [create dataset], NEMA TITA da izmenis strukturu polja, i taj posao se obicno svede na pravljeneje novog TCds-a, zatim copy-paste polja - izmena - pa opet create dataset.....pa onda opet eventi za sva polja, display format za sva polja...jao!

Ovo zna toliko da nervira, da sam na kraju presao na drugi memtable, iako se TCds dobija out-of-the-box.

E da, i obavezni midas.dll koji se uvek zaboravi


Da, takođe sam i ja skontao to, stoga, moramo odmah ispravno konstruisati dataset, ako želimo izbeći nerviranje. Ali za neke sitne stvari, možda i posluži, ali za ozbiljnije stvari, to ne.
[ morlic @ 31.12.2006. 20:40 ] @
Moze i bez midas.dll, samo u uses projekta stavis Midas i uzivas (koliko mozes sa TCDS-om).
[ _v!rus_ @ 02.01.2007. 17:05 ] @
Citat:
morlic: Moze i bez midas.dll, samo u uses projekta stavis Midas i uzivas (koliko mozes sa TCDS-om).


Vau!
Covek se uci dok je ziv, kaze moj deda.

Pitam se kako li su to izveli...
[ morlic @ 02.01.2007. 19:05 ] @
Samo da se ispravim, ne ide "Midas" u USES vec "MidasLib".