![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Поиск текст не зависимо от регистра в БД [D7, XP]
Click[Up] © (2007-05-01 10:47:00)Здарствуйте. Как в БД делать запрос не зависимо от регистра ввода символов. Ввожу такой код для события OnChange: Query1.Locate('FIO', Edit1.Text, [loCaseInsensitive,loPartialKey]); не чего не происходит, Подскажите пожалуста, как сделать подругому или или в чем здесь ошибка???? За ранее спасибо!!!
Click[Up] (2007-05-02 04:05:00) [1]помогиите!!!!!!
Click[Up] (2007-05-01 17:26:00) [2]DBE, Брейкпоинт ставил? н7е ставил - это что я не знаю??
turbouser (2007-05-01 17:24:00) [3]
> Click[Up] (01.05.07 17:17) [5]
1) Query1.Locate вообще отрабатывает? Брейкпоинт ставил?
2) Компоненты доступа какие - BDE? ADO? IBX? или еще что-то?
Desdechado (2007-05-01 17:18:00) [4]KOSik © (01.05.07 17:12) [3]
И где тут регистронезависимость?
Советы даешь, так хоть проверяй их или указывай, в каких случаях и на каких СУБД они работают. Потому как звездочка в стандарте SQL не является символом-заменителем. Да и умолчательный UpperCase в нем отсутствует.
Click[Up] (2007-05-01 17:17:00) [5]Я знаю что Query1.Locate не формирует запрос, он уже сформирован а значение береться из поле ФИО. Надо чтоб он искал похожие по контесту слова, а не по описанию т.е. надо чтоб (ПЕТРОВ) и (петров) было одно и тоже, а если в базе забито (ПЕТРОВ) то он (петров) уже не найдет
Query1.Locate('FIO', Edit1.Text, [loCaseInsensitive,loPartialKey]);
Он обеспечивает переход к записи в которой значение поле ФИО наиболеее близко. loCaseInsensitive поиск не зависимо от регистра и т.д....... Но это все не работает вот я и хотел узнать как сделать чтоб заработало, или другой способ решения этой задачи???? подскажите пожалуста!!!
KOSik (2007-05-01 17:14:00) [6]и
with Query1.SQL do begin
Close;
Clear;
Add('select <имя таблицы>.*');
Add('from <имя таблицы>');
Add(Format('where <имя таблицы>.FIO = %s', [Edit1.Text]));
Add('order by <имя таблицы>.<имя атрибута, по которому упорядочиваешь>');
Open;
end;
это если у тебя атрибут FIO не является строкой
KOSik (2007-05-01 17:12:00) [7]
with Query1.SQL do begin
Close;
Clear;
Add('select <имя таблицы>.*');
Add('from <имя таблицы>');
Add(Format('where <имя таблицы>.FIO like "*"%s"*"', [Edit1.Text]));
Add('order by <имя таблицы>.<имя атрибута, по которому упорядочиваешь>');
Open;
end;
это если у тебя атрибут FIO является строкой
KOSik (2007-05-01 17:00:00) [8]кури SQL
Desdechado (2007-05-01 14:58:00) [9]> код для события OnChange
События чего?
> Как в БД делать запрос
> Query1.Locate
Этот метод не делает запросов, он просто позиционирует указатель текущей записи датасета на строку в нем, удовлетворяющую условиям. Если она есть, конечно.