Prolazi mi ovo:
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
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:
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