[ vula @ 13.01.2007. 13:13 ] @
Da li je ko koristio TADOQuery odnosno TADODataSet filter?

Prolazi mi ovo:
Code:

TADOCommand* command = new TADOCommand(this);
TADODataSet* dataSet = new TADODataSet(this);

command -> CommandText = "SELECT * FROM STUDENT;";
dataSet -> Recordset = command -> Execute();
 
dataSet -> Filtered = false;
dataSet -> Filter = "SIFRA_STUDENTA = " + cbbSifra -> Text;
dataSet -> Filtered = true;


ali ne i ovo
Code:

command -> CommandText = "SELECT * FROM STUDENT;";
dataSet -> Recordset = command -> Execute();
 
dataSet -> Filtered = false;
dataSet -> Filter = "PREZIME_STUDENTA LIKE '" + cbbPrezime -> Text + "%'";
dataSet -> Filtered = true;

Stvar je u tome sto ja zelim da napravim filter koji ce filterisati Bazu Podataka i raditi na OnChange() event od TComboBox polja i kada korisnik unese jedno slovo prezimena u TComboBox da se isfiltrira Baza Podataka da se TComboBox popuni samo onim prezimenima koja pocinju sa nekim unesenim slovom.
To mi prolazi kada u OnChange() stavim da svaki put poziva Bazu Podataka i da iznova filtrira ovako:
Code:

void TfrmStudent::cbbPrezimeChange(TObject *Sender)
{
 command -> CommandText = "SELECT PREZIME FROM STUDENT 
WHERE PREZIME LIKE '" + cbbPrezime -> Text + "%';";
 dataSet -> Recordset = command -> Execute();

 cbbPrezime -> Items -> Add(dataSet -> Fields -> Field[1] -> AsString);
}

Ali na taj nacin imam veliki broj obracanja Bazi Podataka!?!
To zelim da izbjegnem filtrirajuci TADODataSet!?!

Ono sto mene u sustini interesuje jeste da li se operator LIKE moze postavljati u Filter od TADODataSet? Ili mora samo ,,=''?!
Dakle, nije mi proslo
dataSet -> Filter = "NAZIV_STUDENTA LIKE '" + cbbPrezime -> Text + "%'";

Hvala. Pozdrav
[ X Files @ 13.01.2007. 13:37 ] @
Zašto ne koristiš TADOQuery i zaboraviš na sve te filter?

Prosto ukucaš u SQL property (TStringList) bilo koji upit i on naprosto radi!

Filer, koliko mi je poznato od ranije ne može da ima cele upite, već samo neka primitivna poređenja
(ako nisu nešto unapređivali), mada ne vidim prednost u odnosu na TADOQuery.



[ vula @ 14.01.2007. 12:52 ] @
Citat:

Tako mogu da filtriram DataSet?
Meni treba da povucem iz Baze grupu podataka pa to da filtriram po nekom uslovu,
u mom slucaju unosu jednog slova u TComboBox, i da tako isfiltrirano na klijentskoj strani prikazujem.

Tako mogu da filtriram DataSet? Meni treba da povucem iz Baze grupu podataka pa to da filtriram po nekom uslovu, u mom slucaju unosu jednog slova u TComboBox, i da tako isfiltrirano na klijentskoj strani prikazujem.

Hvala X Files po x-ti put, kad x konvergira ka beskonacno. :)



[Ovu poruku je menjao X Files dana 14.01.2007. u 14:26 GMT+1]
[ X Files @ 14.01.2007. 13:28 ] @
TADOQuery je predviđen da vrati dataset koji je rezultat nekog SQL upita koji opet može
da bude na ma koliko tabela iz baze.

Taj dataset možeš da prikažeš u recimo, DBGridu, pa čak ponekad i da ga naživo menjaš
(LIVE UPDATE) ako za to ima uslova (tj. ako upit obuhvata dovoljno podataka).
[ vula @ 14.01.2007. 15:08 ] @
Citat:
X Files: TADOQuery je predviđen da vrati dataset koji je rezultat nekog SQL upita koji opet može
da bude na ma koliko tabela iz baze.


To znam. Procitao sam u Help-u. :)

Citat:
X Files: Taj dataset možeš da prikažeš u recimo, DBGridu, pa čak ponekad i da ga naživo menjaš
(LIVE UPDATE) ako za to ima uslova (tj. ako upit obuhvata dovoljno podataka).


To i radim, neke podatke prikazujem u DBGridu a neke ubacujem u Edit, ComboBox...
Cackacu melo na netu i po help-u, mozda nesto iscackam.

Hvala!