[ Bojan Kopanja @ 04.08.2006. 09:45 ] @
Napravio sam 2 tabele u bazi. Jedna je KATALOG i tu se nalazi sifra artikla, njegov naziv, jedinica mere i sl. a druga je FAKTURA u koju se ubacuju artikli koji se prodaju.

E sada kako necu da dupliram podatke u obe baze hteo sam sa join da povezem sifru iz FAKTURE sa sifrom iz KATALOGA i tako da vucem polja NAZIV i J_MERE u sam pregled fakture.

Sve to lepo radi cim ja odradim SQL upit koji glasi:
Code:
select KATALOG.NAZIV, KATALOG.J_MERE, FAKTURE.* from FAKTURE left join KATALOG on FAKTURE.SIFRA = KATALOG.SIFRA;
ali kada se faktura pise, tj. kada se ubacuju podaci u nju, tj. kada se vrsi prodaja u DBGridu koji mi prikazuje sta se sve do sada nalazi u fakturi mi se ne prikazuju NAZIV i J_MERE sve dok ne uradim adoqFakture.Requery([]); (adoqFakture mi je naravno query sa upitom za fakturu ).

E mene sada interesuje kako mogu da prikazujem trenutno i nazim i jedinicu mere za vreme izrade fakture a da ne pozivam ponovo SQL upit posto to moze da traje celu vecnost ako faktura recimo ima 50 artikala, a do sada u bazi ima vec 200000 artikala. Ko bi cekao posle svakog unosa artikla da se ponovo odradi SQL upit.

Znaci SQL upit mi je onaj koji sam napisao a za prikaz artikala u fakturi koristim DBGrid, a od komponenti za rad sa Bazomkoristim ADO komponente i Access-ovu bazu ( nije najsrecnije resenje ali je doba baza dok se malo obucim )...

Hvala unapred za svaki savet!
[ bondja @ 04.08.2006. 14:26 ] @
Pretpostavljam da korsitis ClientDataSet, onda mozes da u OnCalculate metodi pomenute komponente da ubacis SQL :
" select * from Katalog where Sifra = " + ClientDataSet.FieldByname("Sifra").AsString;

Naravno moras u CDS da dodas jos 2 polja (calculated) za Naziv i jed.mere i da se oni prikazuju u Gridu...

pozdrav.
[ Bojan Kopanja @ 04.08.2006. 14:26 ] @
Ne, vec sam napisao da koristim ADOQuery, a njega sam sa DBGridom povezao preko DataSource-a... Da menjam to ili moze da radi i u ovoj varijanti?

Mada koliko vidi i ovde se izvrsava svaki put neki SQL upit... Znaci ne mogu nikako bez toga da prodjem?

Damn ...
[ morlic @ 05.08.2006. 09:00 ] @
Ne znam kako to ide u ADO-u, ali u principu se svodi na refresh samo tog sloga na kome se nalazi. Pogledaj da li komponenta ima Refresh metod za slog, i da li moze da se zada ResfreshSql u kome bi ti mogao da mu stavis upit po kome bi samo taj slog bio pravilno osvezen.
[ Bojan Kopanja @ 05.08.2006. 10:13 ] @
Hvala na odgovoru, veoma je ohrabrujuc . Samo jos da pogledam da li je to moguce iz ADO komponenti ili da ih menjam dok nisam daleko stigao .

Ukoliko vidim da se to ne moze ovde odraditi koje mi komponente za rad sa bazama podataka preporucujes, a da je ovo moguce odraditi? Bilo bi pozeljno da te komponente podrzavaju i Access baze, mada nije presudno.
[ marcha @ 05.08.2006. 12:05 ] @
Za direktan rad sa Accesom tesko da ces naci neku bolju comp. od TADO... . Vidljivost tih polja mozes resiti preko generickih lookup polja ali to nije najsrecnije resenje za baze sa puno podataka. Ako vec kazes da imas preko 200000 stavki a verovatno i potrebu za mreznim radom mislim da je najbolje da predjes na neki drugi RDBMS, ako ti je izvodljivo. Predlog je, naravno, FB. Ukoliko se odlucis za FB, onda ce ti TIBDataSet resiti problem koji si navo gore. On radi bas ono sto je napisao morlic. Ima RefreshSQL koji osvezava samo izmenjeni/dodati slog. Radi skroz u realtime bez obzira na velicinu baze. Za brzinu odziva podataka sa servera vazno je samo da tabele koje spajas budu ispravno indeksirane. BTW program u OLTP okruzenju mora da radi istom brzinom nad praznom i "punom" bazom.
[ morlic @ 05.08.2006. 16:31 ] @
Ako predjes na FB mozes da probas FIBPlus komponente. Bogate su opcijama. Mada sve mozes da uradis i sa IBX-om koji dolazi uz Delphi. Access je resenje za manje baze. Kada baza predje odredjenu velicinu, i kada su potrebne neke napredne osobine ne gine ti prelazak na nesto ozbiljnije (mozda cak i MS SQL).

Naravno ako nesto vec imas u Access-u, nece biti lako preci.

U svakom slucaju razvoj aplikacija za jednog korisnika se razlikuje od pravljenja aplikacija za istovremeni rad vise korisnika. Isto kao i sa visenitnim programiranjem. A dual core je vec tu :)
[ Bojan Kopanja @ 05.08.2006. 18:31 ] @
OK, definitivno cu morati polako da migriram na FB posto od ovog izgleda nema previse srece .

Hvala svima na savetima i pokusajima pomoci, a kad predjem na FB evo mene sa novim pitanjima i problemima .