Dmitri |
Отправлено: 19.06.2003, 14:08 |
|
admin@localhost
Группа: Модератор
Сообщений: 110
|
Реализовал поиск по колонкам DBGrid. Но как сделать поиск НЕ по первым символам в ячейке, а в целом, по ее содержимому?
Например, у меня есть ячейка "Сайт CBuilder". Если я начну искать стандартнм методом:
CODE |
Table1->IndexFieldNames="Num";
Table1->FindNearest(&TVarRec(edSearch->Text),0);
|
То программа не найдет ячейку "Сайт CBuilder". Как сделать так, чтобы нашла?
|
|
Admin |
Отправлено: 19.06.2003, 17:18 |
|
Владимир
Группа: Администратор
Сообщений: 1190
|
CODE |
Table1->IndexFieldNames="NameSite";
Table1->FindKey(ARRAYOFCONST(("Сайт CBuilder")));
или то-же самое немного подробнее:
Table1->IndexFieldNames="NameSite";
TVarRec vr = ("Сайт CBuilder");
Table1->FindKey(&vr, 0);
---
Если поиск без исрользования индексов, то можно
if(Table1->Locate("NameSite","Сайт CBuilder",TLocateOptions())){
ShowMessage("Ok ! Record find !");
}
|
|
|
Dmitri |
Отправлено: 19.06.2003, 18:11 |
|
admin@localhost
Группа: Модератор
Сообщений: 110
|
Я не так сформулировал вопрос. У меня есть строка "Сайт CBuilder", мне надо, чтобы если пользователь ищет "CBuilder", он нашел эту строку (если. конечно нет строки "Сайт CBuilder").
Т.е. мне нужно т.н. "неточное соответствие".
|
|
Admin |
Отправлено: 23.06.2003, 08:29 |
|
Владимир
Группа: Администратор
Сообщений: 1190
|
CODE |
Query1->Close();
AnsiString s = "Select * from Card where Name like ";
s = s + "'%" + Edit1->Text + "%'";
Query1->SQL->Clear();
Query1->SQL->Add(s);
Query1->Open();
|
|
|