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

Kako bi ste resili ovaj problem?

[es] :: Pascal / Delphi / Kylix :: Kako bi ste resili ovaj problem?

[ Pregleda: 4300 | Odgovora: 11 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

MatezYU

Član broj: 4114
Poruke: 1586
*.adanet.co.yu.



+17 Profil

icon Kako bi ste resili ovaj problem?09.05.2007. u 06:59 - pre 173 meseci
Dakle ovako, imam csv fajl i treba da napravim program za editovanje i zmenu tog fajla.. Podaci u njemu su u relaciji, recimo ovako:
A,ime i prezime,ulica i broj,mesto
B,naziv filma,cena
B,naziv filma,cena
A,ime i prezime,ulica i broj,mesto
B,naziv filma,cena
A,ime i prezime,ulica i broj,mesto
B,naziv filma,cena
B,naziv filma,cena
B,naziv filma,cena
B,naziv filma,cena
B,naziv filma,cena

itd.. Dakle kontate kako je to u relaciji. Kako da odradim da podatke iz reda A vidim u jednom dbgridu a podatke iz B u drugom. I da su oni u relacji.
 
Odgovor na temu

aleksandarpopov
IT consultant
Senta

Član broj: 57172
Poruke: 484
195.178.33.*

Sajt: www.linkedin.com/in/aleks..


Profil

icon Re: Kako bi ste resili ovaj problem?09.05.2007. u 08:26 - pre 173 meseci
XML i ClientDataSet
RTFM
 
Odgovor na temu

MatezYU

Član broj: 4114
Poruke: 1586
*.adanet.co.yu.



+17 Profil

icon Re: Kako bi ste resili ovaj problem?09.05.2007. u 08:58 - pre 173 meseci
Ajde mi pojasni..
Ja sam odradio ovako, uzeo sam absolute database komponentu, odradio tako da kada se pokrene program kreira 2 tabele i puni preko tog fajla te tabele i onda ih stavlja u relaciju.. Zakomplikovao.. Ajde mi pojasni kako da odradim to..
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4888
*.tekostolac.co.yu.

Jabber: xfiles@elitesecurity.org


+632 Profil

icon Re: Kako bi ste resili ovaj problem?09.05.2007. u 09:54 - pre 173 meseci
CSV fajl beše običan ASCII fajl sa zarezima kao graničnicima?

Ja bih napravio jednu sasvim praznu MS Access BAZU sa dve tabele u njoj
i unapred postavljenoj master-detail relaciji OSOBA -> FILM.

Tabela 1 (OSOBA):
1. ID (autoincrement, PK)
2. ime i prezime
3. ulica i broj
4. mesto

Tabela 2 (FILM):
1. ID_FK (spoljni ključ ka ID-ju tabele 1)
2. naziv filma
3. cena

CSV fajl bih tretirao kao najobičniju CONFIG datoteku, i inicijalno čitanje bih odradio
kako bih odradio, na primer preko TStringList-e.

Dalje bi išlo sve preko DB Data-Aware komponenti. S obzirom da se podaci upisuju odmah,
ne bi bilo problema oko pucanja pograma/nestanaka struje i gubitka podataka.

Dalje, pre učitavanja u MS ACCESS bazu, trebalo bi vršiti proveru da li je EXPORT i pražnjenje
u CSV od prethodnog puta bio u redu i eventualno da li je datum CSV fajla noviji od datuma
u MDB fajlu, pa da se vidi šta dalje, i sl.
 
Odgovor na temu

MatezYU

Član broj: 4114
Poruke: 1586
*.adanet.co.yu.



+17 Profil

icon Re: Kako bi ste resili ovaj problem?09.05.2007. u 10:04 - pre 173 meseci
Meni taj fajl nije xml fajl nego obican csv fajl..
 
Odgovor na temu

MatezYU

Član broj: 4114
Poruke: 1586
*.adanet.co.yu.



+17 Profil

icon Re: Kako bi ste resili ovaj problem?09.05.2007. u 10:13 - pre 173 meseci
Tako sam i ja radio. E sada interesuje me da li postoji neko "elegantnije" resenje?
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4888
*.tekostolac.co.yu.

Jabber: xfiles@elitesecurity.org


+632 Profil

icon Re: Kako bi ste resili ovaj problem?09.05.2007. u 10:43 - pre 173 meseci
Koliko vidim, CSV fajl koji si pokazao (koga pretpostavljam moraš da imaš jer
je deo nekog većeg monolitnog "sistema" u pozadini) lici na klasicnu bazu podataka,
a to dalje znaci da ima tendenciju da se zahtevi prosiruju. To znam iz iskustva.

U takvim okolnostima, ja nemam dilemu...

Relacioni model koji ti nudi bilo koja baza (MDB recimo):

1. pri samom citanju i inicijalnom upisu izvrsice proveru integriteta
2. u samom radu sa bazom te rasterecuje pitanja o Integritetu baze
3. cuva podatke FIZIČKI na disku, a ne samo u RAM-u
4. omogućuje korišćenje DB Aware kontrola
5. olaksava se geniranje izveštaja jer neki alati za izveštaje se oslanjaju
na postavljenu master/detail vezu pa sami dalje znaju šta da rade

... itd.

Teško je definisati elegantno. Manje koda ne znači i eleganciju, pogotovo
kada stavri krenu da se usložnjavaju, pa elegancija preraste u frankeštajna
od koda.

Ovde je jedini problem šta ako se CSV fajl promeni, a ti nisi izvršio EXPORT
nazad u taj isti CSV fajl.

To što je rekao aleksandarpopov isto može biti elegantno rešenje. XML bi ti
omogućio jedan fajl, a poseduje mogućnost iteracije kroz strukturu, ali o tome
neka neko drugi priča (ko ima više iskustva sa XML-om).
 
Odgovor na temu

Miloš Baić
Miloš Baić
ERP (Dynamics NAV) programer
Beograd

Član broj: 72468
Poruke: 1155
*.dialup.neobee.net.



Profil

icon Re: Kako bi ste resili ovaj problem?09.05.2007. u 11:17 - pre 173 meseci
Nešto slično sam davno isprobao. Kombinacija je bila TClientDataSet i .cds fajl, tj. binarni .xml. Preporučio bih ti ovu varijantu ako se projekat sastoji iz dve tabele (A, B) koje su u relaciji. Mada, može i nešto složenije, zavisi koliko bi vodio računa o svemu.

Trebala bi ti dva .xml fajla (.cds), jedan za jednu tabelu, drugi za drugu, te Master/Detail strukturu napraviti bi bio trivijalan problem.
Someone's sitting in the shade today because someone planted a tree a long time ago.
 
Odgovor na temu

MatezYU

Član broj: 4114
Poruke: 1586
*.adanet.co.yu.



+17 Profil

icon Re: Kako bi ste resili ovaj problem?09.05.2007. u 11:31 - pre 173 meseci
Misliš da bi trebalo da kreiram dva temp fajla u TClientDataSet-u i da ih vežem da budu u relaciji pa da ih punim iz onog csv fajla?
 
Odgovor na temu

Miloš Baić
Miloš Baić
ERP (Dynamics NAV) programer
Beograd

Član broj: 72468
Poruke: 1155
*.dialup.neobee.net.



Profil

icon Re: Kako bi ste resili ovaj problem?09.05.2007. u 12:56 - pre 173 meseci
@MatezYu

Vidi ovako, kad mi nešto nije jasno, vratim se na prvi post, da ponovo pročitam pitanje. Sad, nije mi jasno da li ti podatke imaš u CSV fajlu pa želiš samo ih importovati u bazu, te napraviti Master/Detail strukturu, ili imaš CSV fajl koji ćeš direktno puniti iz svoje aplikacije, ručno?

Sad sam video, u sklopu JEDI projekta, imaš komponentu koja se zove TJvCsvDataSet, u sklopu JVCL foldera primer JvCSVDataSet.
Imaš primer unosa u csv fajl i importovanja podataka iz istog. Pogledaj, ne bi trebalo biti problema.
Someone's sitting in the shade today because someone planted a tree a long time ago.
 
Odgovor na temu

MatezYU

Član broj: 4114
Poruke: 1586
*.adanet.co.yu.



+17 Profil

icon Re: Kako bi ste resili ovaj problem?10.05.2007. u 06:01 - pre 173 meseci
To sam vec uradio, dakle iskoristio sam tu JEDI komponentu za citanje podataka iz csv fajla. Zatim punim dve tabele koje koje su u relaciji i kada napravim izmene onda punim opet taj csv fajl ali kontra, idem kao save as.. i preko onog starog ponovo iz cele baze citam rekorde i punim csv fajl.. Drugacije nisam uspeo da resim.
Interesovalo me samo da li postoji neko resenje recimo da direktno pristupam csv fajlu kao bazi bez tog exporta i importa u lokalnu bazu na racunaru. Da li postoji neka komponenta ili neko resenje koje moze strukturu toj csv fajla da prepozna kao bazu?
 
Odgovor na temu

Miloš Baić
Miloš Baić
ERP (Dynamics NAV) programer
Beograd

Član broj: 72468
Poruke: 1155
*.dialup.neobee.net.



Profil

icon Re: Kako bi ste resili ovaj problem?10.05.2007. u 10:10 - pre 173 meseci
Nisam se previše udubio u primer sa CSV fajlom, ali umesto SaveToFile možeš nešto vako odraditi:
Code:

  with JvCsvDataSet do
   begin
    Insert;
     FieldByName('ID').AsInteger:= StrToInt(Edit3.Text);
     FieldByName('LASTPHONECALL').AsString:= Edit4.Text;
     FieldByName('PRIVATENUMBER').AsBoolean:= StrToBool(Edit5.Text);
    Post;
   end;
//refresh

Inverzno od toga:
Code:

  with JvCsvDataSet do
   begin
    Edit;
     FieldByName('ID').AsInteger:= StrToInt(Edit3.Text);
     FieldByName('LASTPHONECALL').AsString:= Edit4.Text;
     FieldByName('PRIVATENUMBER').AsBoolean:= StrToBool(Edit5.Text);
    Post;
   end;
//refresh


Someone's sitting in the shade today because someone planted a tree a long time ago.
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Kako bi ste resili ovaj problem?

[ Pregleda: 4300 | Odgovora: 11 ] > FB > Twit

Postavi temu Odgovori

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