Модераторы: Akella

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> выборка не зависящяя от регистра 
:(
    Опции темы
EvilSimba
Дата 21.11.2007, 14:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 29.8.2006

Репутация: нет
Всего: нет



всем привет.использую базу *.gdb FireBird 1.5
есть таблицпа TABlE и столбец col (varchar) и Edit куда вводят строку для посика
так вот я пишу "select * from table where col like '%Text%' " но в таком случае выбираются строки только с одинаковым регистром. а как надо написать чтобы поиск не зависел от регистра Text ?
PM MAIL   Вверх
Akella
Дата 21.11.2007, 16:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 20
Всего: 329



Код

select * from table where UPPER(col) like '%TEXT%'


желательно, чтобы col был win1251 и PXW_CYRL

иначе сам запрос усложняется (точный синтаксис не помню)
Код

select * from table where UPPER(col) collate PXW_CYRL like '%TEXT%'


Это сообщение отредактировал(а) Akella - 21.11.2007, 16:43
PM MAIL   Вверх
Deniz
Дата 22.11.2007, 07:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1251
Регистрация: 16.10.2004
Где: Новый Уренгой

Репутация: 22
Всего: 44



Чуток подправлю
Код
select * from table where UPPER(col  collate PXW_CYRL) like '%TEXT%'



Это сообщение отредактировал(а) Deniz - 22.11.2007, 07:18


--------------------
"Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с)
PM ICQ   Вверх
Darked
Дата 10.1.2008, 13:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 536
Регистрация: 26.2.2004
Где: Южный Урал

Репутация: нет
Всего: нет



 А если не помогает? и выдаётся такое:
Dynamic SQL Error SQL error code = -204 Data type unknown COLLATION PXW_CYRL is not defined


--------------------
Veni, Vidi, Vici !!!
PM MAIL ICQ   Вверх
DEER
Дата 10.1.2008, 14:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 749
Регистрация: 12.4.2005
Где: г. Рязань

Репутация: нет
Всего: 13



ещё в некоторых диалектах встречал оператор ILIKE, может и в FireBird есть



--------------------
 
PM MAIL WWW ICQ MSN   Вверх
Deniz
Дата 10.1.2008, 15:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1251
Регистрация: 16.10.2004
Где: Новый Уренгой

Репутация: 22
Всего: 44



Цитата(Darked @  10.1.2008,  16:57 Найти цитируемый пост)
 А если не помогает? и выдаётся такое:
Dynamic SQL Error SQL error code = -204 Data type unknown COLLATION PXW_CYRL is not defined 

Покажи SQL-запрос, который выполняешь.
Проверь наличие fbintl.dll в FireBirdInstallDir\intl\


--------------------
"Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с)
PM ICQ   Вверх
Darked
Дата 14.1.2008, 10:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 536
Регистрация: 26.2.2004
Где: Южный Урал

Репутация: нет
Всего: нет



Deniz, fbintl.dll  имеется, запрос следующий:
SELECT * FROM employee
WHERE UPPER(name COLLATE PXW_CYRL) = 'ВАСЯ'



--------------------
Veni, Vidi, Vici !!!
PM MAIL ICQ   Вверх
Deniz
Дата 14.1.2008, 13:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1251
Регистрация: 16.10.2004
Где: Новый Уренгой

Репутация: 22
Всего: 44



Странно, 
с какой кодировкой создавалась БД? 
с какой подключаешься?


--------------------
"Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с)
PM ICQ   Вверх
Akella
Дата 14.1.2008, 17:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 20
Всего: 329



попробуйте поставить firebird 2.0.3
PM MAIL   Вверх
Darked
Дата 15.1.2008, 06:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 536
Регистрация: 26.2.2004
Где: Южный Урал

Репутация: нет
Всего: нет



  БД создавалась с кодировкой NONE )) Подключаюсь.... да, понятия не имею с какой подключаюсь, по дефолту.


--------------------
Veni, Vidi, Vici !!!
PM MAIL ICQ   Вверх
Deniz
Дата 15.1.2008, 08:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1251
Регистрация: 16.10.2004
Где: Новый Уренгой

Репутация: 22
Всего: 44



Цитата(Darked @  15.1.2008,  09:35 Найти цитируемый пост)
 БД создавалась с кодировкой NONE )) Подключаюсь.... да, понятия не имею с какой подключаюсь, по дефолту. 

Плохо что None.
Что значит не имеешь понятия? Т.е. не указываешь с какой подключаешься? Тогда вообще удивительно что на слово 'ВАСЯ' не ругается.
Укажи при подключении win1251.


--------------------
"Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с)
PM ICQ   Вверх
Darked
Дата 15.1.2008, 09:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 536
Регистрация: 26.2.2004
Где: Южный Урал

Репутация: нет
Всего: нет



Deniz, попробовал blaze topo'ом подключиться к базе с Win1251, выдал ошибку:
Bad parametrs on attach or create database CHARACTER SET WIN1251 is not DEFINED


--------------------
Veni, Vidi, Vici !!!
PM MAIL ICQ   Вверх
Darked
Дата 15.1.2008, 10:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 536
Регистрация: 26.2.2004
Где: Южный Урал

Репутация: нет
Всего: нет



   Создал другую базу на локальном серваке с CHARSET NONE, коннект при CHARSET WIN1251 нормально, при при выполнении запроса:
select * from my where UPPER(name COLLATE PXW_CYRL) = 'Михаил'
выдаёт ошибку:
Undefined name.
Dynamic SQL Error.
SQL error code = -204.
Data type unknown.
COLLATION PXW_CYRL for CHARACTER SET NONE is not defined.



--------------------
Veni, Vidi, Vici !!!
PM MAIL ICQ   Вверх
Deniz
Дата 15.1.2008, 14:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1251
Регистрация: 16.10.2004
Где: Новый Уренгой

Репутация: 22
Всего: 44



Darked, попробуй сл-щее:
1. Создать БД с win1251
2. Подключиться с win1251
3. Создать таблицу и выполнить запрос.
PS: еще скажи полную версию 1.5.какая?
PSS: выложи сдесь бекап БД, попробуем у себя.


--------------------
"Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с)
PM ICQ   Вверх
Akella
Дата 16.1.2008, 09:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 20
Всего: 329



Цитата(Darked @  15.1.2008,  06:35 Найти цитируемый пост)
БД создавалась с кодировкой NONE ))

так и подключаться нужно с той же кодировкой
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Interbase"
Alex

Обязательно указание:

1. Версию InterBase (Firebird, Yaffil)

2. Способа доступа (ADO, BDE, IBX и т.д.)

  • КАК ПРАВИЛЬНО ОФОРМИТЬ КОД - ЗДЕСЬ
  • КАК ПРАВИЛЬНО УКАЗАТЬ ТЕКСТ ОШИБКИ - ЗДЕСЬ
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • FAQ раздела лежит здесь!

Если Вам понравилась атмосфера форума, заходите к нам чаще! С Уважением, Akella.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Firebird, Interbase | Следующая тема »


 




[ Время генерации скрипта: 0.0952 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.