Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.01.13;
Скачать: CL | DM;

Вниз

Отключить проверку заглавных букв   Найти похожие ветки 

 
altatr ©   (2007-12-12 15:36) [0]

Привет всем!
Такой вопрос. Имеется таблица данных. Поиск по ней выполняется с помощью SQL запросов. Примерно так:

with form1.Query1 do begin
          Close;
          SQL.Clear;
          SQL.Add("SELECT NAME, FNAME, SNAME");
          SQL.Add("FROM ":BASE:main.dbf"");
          SQL.Add("WHERE");
          SQL.Add("(NAME = ""+ f +"")");
          SQL.Add("ORDER BY NAME, FNAME, SNAME");
          Open;
        end;

В таблице фамилии (поле NAME) начинаются с Заглавной буквы поэтому при поиске приходится переменную f тоже вводить с заглавной буквы. Можно ли отключить проверку заглавных и прописных букв?


 
Amoeba ©   (2007-12-12 15:56) [1]

Можно. Нужно использовать в сравнении ф-ии преобразования в верхний или нижний регистр.


 
altatr ©   (2007-12-12 16:42) [2]

Ну с переменной f просто, ей я присвоил значение компонента Edit1.text у которого в свою очередь в свойстве CharCase стоит ecUpperCase т.е. все пишем большими буквами. А как сделать чтобы прога видела все записи в поле NAME большими буквами?


 
oldman ©   (2007-12-12 16:46) [3]

Я в своей проге не заморачивался с руками юзеров и все записи в БД (соответственно и поиск тоже) делал ТОЛЬКО большими буквами.
А то ведь фамилия может быть "Петров", а может быть и "Петров-Иванов"...


 
Johnmen ©   (2007-12-12 16:52) [4]

Об используемой СУБД мы должны сами догадаться?


 
Anatoly Podgoretsky ©   (2007-12-12 16:54) [5]

Сейчас услышишь, что dbf


 
Johnmen ©   (2007-12-12 17:00) [6]


> Anatoly Podgoretsky ©   (12.12.07 16:54) [5]
> Сейчас услышишь, что dbf

Тогда пошлю в localsql.hlp для изучения встроенных ф-ий...


 
oldman ©   (2007-12-12 17:01) [7]


> Johnmen ©   (12.12.07 17:00) [6]


В сабже четко написано:
SQL.Add("FROM ":BASE:main.dbf"");


 
altatr ©   (2007-12-12 17:11) [8]


> Я в своей проге не заморачивался с руками юзеров и все записи
> в БД (соответственно и поиск тоже) делал ТОЛЬКО большими
> буквами


База то уже набита. Больше 12000 записей. И набивается она в другой программе.


 
oldman ©   (2007-12-12 17:12) [9]

Всего 12000?
Конвертни перед поиском.


 
Anatoly Podgoretsky ©   (2007-12-12 18:55) [10]

> oldman  (12.12.2007 17:01:07)  [7]

И что это значит?
Клиппер?


 
Desdechado ©   (2007-12-12 20:58) [11]

WHERE Upper(name) = :F
И построить индекс по UPPER(NAME)


 
altatr ©   (2007-12-13 00:35) [12]


>Desdechado ©   (12.12.07 20:58) [11]

>WHERE Upper(name) = :F
>И построить индекс по UPPER(NAME)


Переписал строку:

SQL.Add("(UPPER (NAME) = ""+ f +"")

и работает как надо.
Спасибо.



Страницы: 1 вся ветка

Текущий архив: 2008.01.13;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.034 c
15-1196933701
Kostafey
2007-12-06 12:35
2008.01.13
Тестирование Web - приложений


4-1182258624
Викетор1985
2007-06-19 17:10
2008.01.13
Как зная имя процесса получить его PID


2-1197644076
J@ME
2007-12-14 17:54
2008.01.13
Сортировка Бэтчера


3-1188898377
novill
2007-09-04 13:32
2008.01.13
IB 7.1 Что означает COMMIT RETAIN ?


15-1197242031
Andy BitOff
2007-12-10 02:13
2008.01.13
Это может быть вам интересно