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

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

Регистр символов и таблица в памяти [D6, IB6.x]


Дмитрий К. ©   (2003-09-18 14:58:00) 

Уважаемые мастера!
Есть срочный вопрос.Каким оразом при SQL запросе к IB базе данных можно игнорировать регистр символов,т.е. уовнять "A" и "a".
И ещё как создать таблицу в памяти, чтобы к ней можно было посылать запросы.

Буду признателен за ответ.


Zacho   (2003-09-18 15:29:00) [1]


> Дмитрий К. (18.09.03 15:20) [6]
> При такой постановке запоса не выдаёт ничего
> select * from T$CLIENTS, T$ITEMS where upper(ITMTEXT COLLATE
> PXW_CYRL) like "%авто%" and T$CLIENTS.ID=T$ITEMS.CLIENTID

Правильно:
select * from T$CLIENTS, T$ITEMS where upper(ITMTEXT COLLATE PXW_CYRL) like "%АВТО%" and T$CLIENTS.ID=T$ITEMS.CLIENTID
или
select * from T$CLIENTS, T$ITEMS where upper(ITMTEXT COLLATE PXW_CYRL) like UPPER("%авто%") and T$CLIENTS.ID=T$ITEMS.CLIENTID


Romkin   (2003-09-18 15:29:00) [2]

:))))))
Ага, преобразовал строку в веррхний регистр и сравнил с нижним...
like "%АВТО%" ессно надо.
Может, иногда не помешает подумать, что именно делаешь?


Sandman25   (2003-09-18 15:26:00) [3]

select * from T$CLIENTS, T$ITEMS where upper(ITMTEXT COLLATE PXW_CYRL) like "%АВТО%" and T$CLIENTS.ID=T$ITEMS.CLIENTID

Upper преобразовывает к прописным буквам, а Вы затем результат сравнивали с "%авто%"


Дмитрий К.   (2003-09-18 15:20:00) [4]

При такой постановке запоса не выдаёт ничего
select * from T$CLIENTS, T$ITEMS where upper(ITMTEXT COLLATE PXW_CYRL) like "%авто%" and T$CLIENTS.ID=T$ITEMS.CLIENTID

а если
select * from T$CLIENTS, T$ITEMS where ITMTEXT like "%авто%" and T$CLIENTS.ID=T$ITEMS.CLIENTID
всё в порядке, но только естественно с регистром проблема остаётся.


Nikolay M.   (2003-09-18 15:16:00) [5]


> Дмитрий К. (18.09.03 15:04) [3]
> типа select * from clients where upper(text) like "%запро%"?

Лучше, если
select * from clients where upper(text) like "% ЗАПРО%"


NickBat   (2003-09-18 15:09:00) [6]

Если уж чтобы совсем везде работало то так:

upper(field COLLATE PXW_CYRL) like


Дмитрий К.   (2003-09-18 15:04:00) [7]

типа select * from clients where upper(text)like "%запро%" ?


Nikolay M.   (2003-09-18 15:01:00) [8]


> Каким оразом при SQL запросе к IB базе данных можно игнорировать
> регистр символов,т.е. уовнять "A" и "a".

Зависит от запроса. Но часто помогают функции UPPER/LOWER (UPCASE? не помню, как это в ИБ).


> И ещё как создать таблицу в памяти, чтобы к ней можно было
> посылать запросы.

Да посылай ты эти запросы... к таблице... :) Дались они тебе.. Да еще в памяти...


Zacho   (2003-09-18 14:59:00) [9]


> Дмитрий К. (18.09.03 14:58)
> Уважаемые мастера!
> Есть срочный вопрос.Каким оразом при SQL запросе к IB базе
> данных можно игнорировать регистр символов,т.е. уовнять
> "A" и "a".

UPPER

> И ещё как создать таблицу в памяти, чтобы к ней можно было
> посылать запросы.

Никак. Разве что свой движок напишешь, позволяющий такое.


Наверх

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