[ ik0 @ 31.08.2010. 20:29 ] @
Jer moguce nekako da odredjeni redovi budu izbrisani (ili visible-false). Primer ako nekud zapisujem ko se prijavio za nesta, od tu listu biram ko je bio tamo i zapisujem na trece mesto...e sad kako vec uneti podatak (od liste prijavenih) da ga nema, a opet da stoi u bazi?
[ X Files @ 31.08.2010. 21:37 ] @
Nije mi poznato da je moguce lako manipulisanje "vidljivim/nevidljivim" redovima na nivou TDBGrid-a.

Najbolje je da koristis TADOQuery (koji je preko TDataSource-a u vezi sa TDBGrid-om) i da sve potrebno i nepotrebno ukljucis/iskljucis dinamicki sa WHERE klauzulom.

Ako koristis TADOTable, pogledaj dogadjaj TADOTable::OnFilterRecord i njegov parametar Accept ili direktno osobine Filter i Filtered... mada ne vidim puno razloga za TADOTable kad TADOQuery jednostavno resava sve situacije.
[ ik0 @ 01.09.2010. 02:09 ] @
Poslusao sam te pri prvom mom postu kada si reko da koristim adoq...mometalno njega i koristim, al kako sakriti samo red a ne celu kolonu? Lupam sada kako naprimer pritiskom na button sakritu 3 red? sa WHERE "sakrijem" neku kolonu (bar za to znam :)
[ X Files @ 01.09.2010. 07:23 ] @
Sa SELECT skrivas kolone (biras ono sto zelis da se prilaze), a sa WHERE sakrivas redove.

Taj "treci" red sigurno ima neki jedinstveni sadrzaj (polje1, polje2, polje3) ili odmah ID koji zelis da sakrijes?

Code:

SELECT polje1, polje2, polje3
FROM neka_tabela
WHERE polje1 = 'PETAR' AND ID <> 123

Dakle, prosiris WHERE sa AND i dodas sa negacijom (<>) sta ne zelis da prikazes.

U praksi:
1. obelezis red koji ne zelis da prikazes
2. procitas jedinstvene vrednosti tog reda (najbolje samo ID, a ako ga nema onda redom sva kljucna polja)
3. dinamicki kreiras novi upit koji je prosiren sa AND i odgovarajucim sadrzajem
4. ponovo "ispalis" upit


[Ovu poruku je menjao X Files dana 01.09.2010. u 17:04 GMT+1]
[ ik0 @ 01.09.2010. 14:33 ] @
Ukapirao sam hvala. A ovaj upit sta je dole, zar nemam "selektirano" dve tabele? Jer kad hocu da iscitam nesta iz tabelu "relacija" on mi javi greska da ne vidi tu kolonu t.e tabelu.

Code:
"select Ime, Prezime, Obrazovanie, Telefon, MesenKomitet from Table1 where IDC in ( select IDClan from Relacija where IDDogadjaj=1)"
[ X Files @ 01.09.2010. 16:01 ] @
Ne znam napamet ali upit uvek mozes da isprobas direktno kroz MS ACCESS i tako utvrdis validnost.

Ovde:
"select Ime, Prezime, Obrazovanie, Telefon, MesenKomitet from Table1 where IDC in ( select IDClan from Relacija where IDDogadjaj=1)"
... mozda (nisam siguran) nedostaje IDC:
"select IDC, Ime, Prezime, Obrazovanie, Telefon, MesenKomitet from Table1 where IDC in ( select IDClan from Relacija where IDDogadjaj=1)"

Kasnije taj IDC mozes da sakrijes u TDBGrid-u.
[ ik0 @ 01.09.2010. 16:17 ] @
taj upit radi kao sta treba (ono sto je mni trebalo dobio sam sa njim), "idc" mi netreba u tom primeru. Stom upitom mogu dodavati/brisati/editirati samo tabelu "Table1" a ne i tabelu "Relacija"...kad bi imao nesta ovakvo (samo primer).

Code:

Button1->Caption=Form10->ADOQuery1->FieldByName("IDClan")->AsString;


Izadje greksa ADOQuery1 Filed 'IDClan' not found...kako to resiti...jer mi treba da citam i upisujem u obe tabele sa tom upitom...
[ itf @ 02.09.2010. 12:07 ] @
Probaj desni klik na AdoQuery pa Fields Editor.. A nakon toga dodati sva polja (desni klik, add all fields).
[ ik0 @ 06.09.2010. 04:51 ] @
nece ni tako...Ovako sada ajd da se vratim na problem, ima ih vise ovih sql problemcica...

1.Imam tri tabele (Prijaveni studenti (TPS), primljeni(TP), fakulteti(TF)) Kad izaberem neki fakultet(tabela TF), izadje lista t.e tabela primljeni(TP), sada hocu da dopunim tu tabelu i otvorim tabelu prijavjeni studenti(TPS)...kada dodam nekog studenta hocu da ga snema sa liste (to sam resio t.e Xfiles mi je reko kako)ali to je samo privremeno kad zatvorim tu tabelu radim nesta drugo i opet se vratim tamo opet stoje dodadeni studenti...ako koristim select IDPS from TPS where IDPS <> 'dodadeni student' gde upamtiti vec dodati studenti t.e njinih ID-ja ili bilo sto ili kako procitati koi su vec dodani i posle sklopiti upit?

2. Ostaje isto kako sa ovim upitom "select Ime, Prezime, Obrazovanie, Telefon, MesenKomitet from Table1 where IDC in ( select IDClan from Relacija where IDDogadjaj=1)" da selektiram 2 tabele...t.e Table1 i Relacija...Kada pokusam da procitam nesta iz tabele relacija pukne program i kaze da ne vidi tu tabelu?

Hvala...
[ ik0 @ 06.09.2010. 16:11 ] @
to sam resio na lak nacin...ovo je dalo sve clanove koje su posetile neki nastan "select Ime, Prezime, Obrazovanie, Telefon, MesenKomitet from Table1 where IDC in ( select IDClan from Relacija where IDDogadjaj=1)" a ovo "select Ime, Prezime, Obrazovanie, Telefon, MesenKomitet from Table1 where IDC not in ( select IDClan from Relacija where IDDogadjaj=1)" daje obrnuto bas to sto mi je trebalo :) samo ko da misli :)....E sada je ostali kako da uradim Refresh i kako da selektiram dve tabele odjednom...
[ X Files @ 06.09.2010. 17:29 ] @
Sta znaci selektovati DVE tabele?

Sadrzaj dve tabele se u jednom gridu, SQL upitom dobija ovako:

SELECT PRVA.ID, PRVA.polje1, PRVA.polje2, DRUGA.polje1
FROM TABELA1 PRVA, TABELA2 DRUGA
WHERE PRVA.ID = DRUGA.ID and (JOS_NEKI_USLOV)
[ ik0 @ 06.09.2010. 17:41 ] @
Jasno je meni to....nego kako pri ovim upitom to da uradim?

"select Ime, Prezime, Obrazovanie, Telefon, MesenKomitet
from Table1
where IDC in ( select IDClan from Relacija where IDDogadjaj=1)" kako ovde selektirati Table1 i Relacija (table1 je ok relacija zeza)

I refresh kako uraditi? Hvala ti Xfiles...

[Ovu poruku je menjao ik0 dana 06.09.2010. u 19:00 GMT+1]
[ X Files @ 06.09.2010. 19:11 ] @
Nisam pratio celu temu, ali mozda ti treba ovo:

select Table1.Polje1, Table1.Polje2, Table1.Polje3, Relacija.Polje1, Relacija.Polje2
from Table1, Relacija
where Table1.IDC = Relacija.IDClan and Relacija.IDDogadjaj=1


A sta treba da radi Refresh? Kada treba da se uradi Refresh?
[ itf @ 06.09.2010. 23:45 ] @
Općenito, treba izbjegavati refresh. Na 1000 zapisa refresh zna trajati i do 15ak sekundi. Bolje Open i Close kao alternativa.
[ ik0 @ 07.09.2010. 01:24 ] @
Sta menu treba....pa eto primer, imam formu sa prisustvo i forma sa clanovima...kada otvorim formu sa clanovima i dodam clana u nastan(prisustvo), moram da zatvorim program pa pa otvorim da bi ga video. Probao sam sa adoq->UpdateRecords neke...
[ X Files @ 07.09.2010. 06:30 ] @
Ako zelis da imas neko posebno Refresh dugme, onda ti je rekao itf dobro rekao. Najbolje je da zatvoris (Close) i ponovo otvoris upit (Open), odmah nakon dodavanja novih podataka.

Ako zelis da sve radi automatski, postoje dogadjaji (events) koji se pokrecu odmah nakon izmene, gde mozes da ponovo pokrenes upit. Tako se osiguravas da je upit uvek u skladu s izmenama.


Recimo pogledaj dogadjaje:

TADOTable::AfterPost ili
TADOQuery::AfterPost ili
TDataSource::OnDataChange