Poslao: 09 Mar 2005 15:36
|
offline
- Pridružio: 04 Mar 2005
- Poruke: 31
|
Kako isfiltrirati tabelu(paradox) po vise uslova,pomocu edit1.text,edit2.text,edit3.text itd...
|
|
|
Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
|
|
Poslao: 09 Mar 2005 17:42
|
offline
- beli0135
- Executor
- Pridružio: 03 Jan 2005
- Poruke: 2990
- Gde živiš: Beograd
|
Jednostavno, ali i ne dovoljno dobro.
Otvori help, i pogledaj Locate komandu, kao i TLocateOptions.
Sve to ide mnogo bolje SQL-om.
|
|
|
|
Poslao: 09 Mar 2005 18:18
|
offline
- Strog
- Stručni saradnik
Web programiranje
- Bojan Kopanja
- Web & Mobile developer @ ZeusSoftware
- Pridružio: 26 Jul 2003
- Poruke: 2597
- Gde živiš: Stara Pazova
|
Filtriranje baze je jako jednostavno u delphiju... Evo i primera u vezi sa ADO komponentama ( a isti je đavo i za sve ostale komponente ):
ADOTable1.Filter := 'Ime = ' + QuotedStr(Edit1.Text);
ADOTable1.Filtered := true;
Znači ovo će ti prikazati sve rekorde iz tabele koji imaju polje "Ime" sa vrednošću napisanom u Edit1.
E sada ako želiš da filtriraš po više kriteriojuma, tj. po više polja onda koristiš OR ili AND. Primer:
ADOTable1.Filter := 'Ime = ' + QuotedStr(Edit1.Text)
+ ' AND Neopravdani > 5 OR Vladanje<5';
ADOTable1.Filtered := true;
Recimo ovo bi prikazalo sve učenike koji se zovu onako kako je napisano u Edit1 koji imaju više od 5 neopravdanih časova, ili koji imaju manje od 5 iz vladanja. Mislim primer je jači, ali mi je to palo na pamet da ti lakše objasnim filtriranje .
Eto, to ti je to, pa sad malo experimentiši sa tim i biće to super .
Uživaj!
Dodatak: Eh, da, zaboravio sam da napomenem da je QuotedStr u da bi se ako se u Edit1 nalazi Strog u filter dodalo "Strog", kako bi upit bio ispravan, pošto je polje ime tipa string . I na kraju, umesto onoga
AND Neopravdani > 5
možeš da staviš i:
AND Neopravdani > '+Edit2.text
Da bi mogao da menjaš iz programa broj neopravdanih časova po kojima se filtriraju učenici i to sada radiš bez QuotedStr jer ti ne treba "5", već samo 5 u upitu, pošto je polje "Neopravdani" tipa Integer .
Eto, nadam se da sada nisam sve zapetljao i da sam bio od pomoći .
Pozdrav!
|
|
|
|
Poslao: 09 Mar 2005 18:35
|
offline
- Pridružio: 04 Mar 2005
- Poruke: 31
|
datamodule2.Table2.Filter := 'Datum = ' + quotedstr(edit1.Text + '*') and 'Proizvod = ' + quotedstr(edit2.Text + '*');
Pokusao sam ovako ali ne ide...zakoci mi kod predzadnjeg znaka "+"
|
|
|
|
Poslao: 09 Mar 2005 18:45
|
offline
- Strog
- Stručni saradnik
Web programiranje
- Bojan Kopanja
- Web & Mobile developer @ ZeusSoftware
- Pridružio: 26 Jul 2003
- Poruke: 2597
- Gde živiš: Stara Pazova
|
A kog tipa polja ti je polje Datum, koju tačno grešku izbaci kada stane kod +-a?
|
|
|
|
Poslao: 09 Mar 2005 19:31
|
offline
- Pridružio: 04 Mar 2005
- Poruke: 31
|
DATUM MI JE STRING,ZNACI NIJE GRESKA TOG TIPA,TO SAM SAVLADAO,PA NISTA MI NE IZBACI SAMO SE ZACRVENI LINIJA KODA I KURSOR SE ZAUSTAVI KOD ZNAKA "+"
|
|
|
|
Poslao: 09 Mar 2005 19:34
|
offline
- Strog
- Stručni saradnik
Web programiranje
- Bojan Kopanja
- Web & Mobile developer @ ZeusSoftware
- Pridružio: 26 Jul 2003
- Poruke: 2597
- Gde živiš: Stara Pazova
|
Hehe, a da nisi ti tu stavio breakpoint pa se zato tu zaustavlja , inače ako je greška mora ti nešto izbaciti kao objašnjenje greške. Proveri to sa breakpointom ...
|
|
|
|
Poslao: 09 Mar 2005 19:53
|
offline
- Pridružio: 04 Mar 2005
- Poruke: 31
|
datamodule2.Table2.Filter := 'Datum = ' + quotedstr(edit1.Text + '*')and 'Proizvod = ' + quotedstr(edit2.Text + '*') ;
E ovako sam napisao i na predzadnjem znaku "+" mi stane kursor a greska je: "Operator not applicable to this operand type"
|
|
|
|
Poslao: 09 Mar 2005 19:55
|
offline
- Kaca
- Super građanin
- Pridružio: 26 Sep 2004
- Poruke: 1371
- Gde živiš: blizuBG
|
zasto ne koristis datetimepicker1 umesto edit1?
|
|
|
|
Poslao: 09 Mar 2005 20:02
|
offline
- Pridružio: 04 Mar 2005
- Poruke: 31
|
ma nije mi problem sa datumom,kad stavim samo to on odradi posao ali cim mu pridruzim ovo "and" i filtriranje po drugom edit.text-om problemi.Ne ide,ne ide pa stane...tako ti je kod mene.
|
|
|
|