Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Поиск текст не зависимо от регистра в БД [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
Этот метод не делает запросов, он просто позиционирует указатель текущей записи датасета на строку в нем, удовлетворяющую условиям. Если она есть, конечно.


Наверх

Титульная страница Поиск, карта сайта Написать письмо