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

Вниз

Как искать в базе без учета регистра букв?   Найти похожие ветки 

 
Piter ©   (2004-06-22 21:11) [0]

А то like ищет только при полном совпадении...


 
YurikGL ©   (2004-06-22 21:30) [1]

where upper(поле)="НАБРАНО БОЛЬШИМИ БУКВАМИ"


 
Piter ©   (2004-06-22 21:45) [2]

Блин... что-то со мной не так сегодня... забыл сказать, что работаю с FireBird Embedded, а там collate не работает


 
Ярослав   (2004-06-22 22:14) [3]

А UDF там работает, если да то можно свою функцию подключить (AnsiUpperCase)


 
Johnmen ©   (2004-06-23 10:04) [4]

>FireBird Embedded, а там collate не работает

Можно узнать источник информации ?


 
Vlad ©   (2004-06-23 10:14) [5]

Работаешь с русскими буквами ?

UPPER(field1 COLLATE PXW_CYRL) like ... не работает ?


 
Piter ©   (2004-06-23 10:21) [6]

Johnmen (23.06.04 10:04) [4]
Можно узнать источник информации ?


собственные эксперименты


 
Соловьев ©   (2004-06-23 10:24) [7]


> А то like ищет только при полном совпадении...

откуда такая инфа? можно задать частичный поиск
...
where UPPER(field1 COLLATE PXW_CYRL) like "%"||UPPER(:par1 COLLATE PXW_CYRL)||"%"


 
Danilka ©   (2004-06-23 10:25) [8]

[6] Piter ©   (23.06.04 10:21)
а у меня работает, как ни странно :))
правда не embedded, но, не думаю, что имеет значение. :))


 
Piter ©   (2004-06-23 10:27) [9]

Danilka (23.06.04 10:25) [8]
правда не embedded


блин, ты знаешь, что такое Embedded?


 
Johnmen ©   (2004-06-23 10:27) [10]

>Piter ©   (23.06.04 10:21) [6]
>собственные эксперименты

Неверно поставленный эксперимент приводит к получению неверных данных и далее к неверным выводам...
:)


 
Соловьев ©   (2004-06-23 10:29) [11]


> блин, ты знаешь, что такое Embedded?

что? очень интересно :)


 
Piter ©   (2004-06-23 10:32) [12]

Johnmen (23.06.04 10:27) [10]

Я смотрю ты все знаешь, но не говоришь... может, поделишься знаниями?


 
Danilka ©   (2004-06-23 10:33) [13]

[9] Piter ©   (23.06.04 10:27)
> ты знаешь, что такое Embedded?

Думаю, что знаю. :))
Расскажи, плиз, как это может повлиять на COLLATE, очень интересно. :))


 
Johnmen ©   (2004-06-23 10:34) [14]

>Piter ©   (23.06.04 10:32) [12]
>может, поделишься знаниями?

Поделюсь. Какими ?

>Я смотрю ты все знаешь,...

А разве это возможно ? :)))


 
Piter ©   (2004-06-23 10:46) [15]

Danilka (23.06.04 10:33) [13]
Расскажи, плиз, как это может повлиять на COLLATE, очень интересно. :))


Вот запрос SELECT * FROM Table1 Where UPPER(Field1 COLLATE PXW_CYRL) like ""%"+ТЕСТ+"%"""

Итог:
"SQL error code = -204
Data type unknow
Invalid use of CHARACTER SET or COLLATE". Process stopped..."

Johnmen (23.06.04 10:34) [14]

не надо издеваться. Даже звание мастера не разрешает тебе это делать. Ок? Давай или по делу или никак.


 
Johnmen ©   (2004-06-23 10:53) [16]

>Piter ©   (23.06.04 10:46) [15]
>не надо издеваться. Даже звание мастера не разрешает тебе это
>делать. Ок? Давай или по делу или никак.

Хм... Это твоя мнительность тебе сказала...
:)


 
Vlad ©   (2004-06-23 10:55) [17]

попробуй так

select * from telephones where UPPER(name COLLATE WIN1251) like _WIN1251 "%ЗНАЧЕНИЕ%"


 
Danilka ©   (2004-06-23 11:06) [18]

[15] Piter ©   (23.06.04 10:46)
Специально после этого твоего поста запустил FB1.5 сервер, запустил IB Expert, проверил вот-такой запрос:

select * from goods
where upper(goods_name COLLATE PXW_CYRL) like "СТАР%"

работает так как и должен.
Затем тормознул сервер, в каталог с экспертом перелил фалы от FB Embedded 1.5, зарегистрировал в эксперте ту-же базу, но в качастве клиентской библиотеки выбрал не gds32.dll, а fbembed.dll с полным путем до него, подконнектился к этой БД опять запустил этот-же запрос - все работает.
К слову, вот-такой запрос:

select * from goods
where upper(goods_name) like "СТАР%"

у меня тоже отрабатывает как положеное, в т.ч. и с русскими буковками. :))


 
Piter ©   (2004-06-23 11:12) [19]

Johnmen (23.06.04 10:53) [16]
Это твоя мнительность тебе сказала...


угу. У тебя в данной ветке ни одного сообщения по делу... давай не будет продолжать?

Danilka (23.06.04 11:06) [18]

а при создании базы ты DEFAUL CHARSET какой указывал?


 
Piter ©   (2004-06-23 11:15) [20]

Danilka (23.06.04 11:06) [18]
select * from goods
where upper(goods_name) like "СТАР%"

у меня тоже отрабатывает как положеное, в т.ч. и с русскими буковками


ну а это как возможно? Ты когда таблицы создавал COLLATE указывал?


 
Danilka ©   (2004-06-23 11:23) [21]

[19] Piter ©   (23.06.04 11:12)
WIN1251, и поля varchar такие-же.
но это не важно для COLLATE PXW_CYRL, он-же отработал без ошибки.
вобщем, либо ты что-то не так делаешь, либо у тебя какая-нибудь глючная демка FB.


> ну а это как возможно?

например, так:

CREATE TABLE GOODS2 (
...
   GOODS_NAME    VARCHAR(100) CHARACTER SET WIN1251 NOT NULL,
...
);

а вообще, по-моему, все это в хелпе есть. правда, я давно с FB не работал.


 
Piter ©   (2004-06-23 11:31) [22]

Danilka (23.06.04 11:23) [21]

блин, а у меня не получается создать с WIN_1251... вот что пишет:

"Unsuccessful metadata update
TEST
Statement: create table Test (n varchar(10) CHARACTER SET WIN1251 NOT NULL)"


 
max1000   (2004-06-23 11:34) [23]

Я попробывал вот так
SELECT * FROM schet Where UPPER(name) like "%МАРТИНЕНКО%"
Все заработало и без OLLATE PXW_CYRL


 
Danilka ©   (2004-06-23 11:38) [24]

[22] Piter ©   (23.06.04 11:31)
Я не знаю в чем у тебя проблема, т.к. давно очень работал с FB и мало, а с Embedded только сейчас первый раз поробовал, и у меня все ок. Спроси у кого-нибудь еще, например, у Johnmen. :))


 
Piter ©   (2004-06-23 12:00) [25]

Danilka (23.06.04 11:38) [24]

дело в том, что не понимает FB EMBD кодировок. Ты уверен, что через DLL нужную работаешь? Через embedded?!

Потому что как я писал в Piter ©   (23.06.04 11:31) [22] у меня через EMBD даже нельзя создать таблицу с полем, указав CHARACTER SET! (только который по умолчанию)
А если таблицу все таки создать через полноценный FB , то EMBD все равно с этой таблицей работать не может. Когда в IBDatabase прописываешь lc_ctype=WIN1251, то он при старте уже пишет:
"bad parameters on attach or create database
CHARACTER SET WIN1251 is not defined"


 
Piter ©   (2004-06-23 12:03) [26]

max1000 (23.06.04 11:34) [23]

у тебя именно Firebird Embedded?

Danilka (23.06.04 11:38) [24]

а ты можешь попробовать деинсталлировать firebird вообще и удалить файл gds32.dll в директории с Windows? Чтобы программа точно пользовалась FB EMBD библиотекой... может, у тебя все работает, потому что все таки соединение через сервер идет...


 
Danilka ©   (2004-06-23 12:14) [27]

[26] Piter ©   (23.06.04 12:03)
для этого достаточно просто остановить сервер, что я и сделал, после чего, у меня базы перестали быть доступны через gds32.dll писал ошибку.


 
Piter ©   (2004-06-23 12:34) [28]

Danilka (23.06.04 12:14) [27]

ну не знаю... у меня FB EMBD ни в какую не воспринимает WIN1251 кодировку... не знает он ее и все...


 
Danilka ©   (2004-06-23 12:56) [29]

[28] Piter ©   (23.06.04 12:34)
в архиве с FB embedded есть папка doc, в ней файл README_embedded.txt, почитай его.
У меня тоже получилось сделать так, перестали быть доступны кодировки: после того, как я удалил каталог intl содержащий файл fbintl.dll.


 
Piter ©   (2004-06-23 14:19) [30]

Danilka (23.06.04 12:56) [29]

спасибо большое! У меня не было поддиректории intl :( Теперь все ок!


 
Piter ©   (2004-06-23 14:47) [31]

А что делать, если мне надо искать в Blob русские фразы без учета регистра?



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

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

Наверх




Память: 0.54 MB
Время: 0.029 c
1-1088940701
zep
2004-07-04 15:31
2004.07.18
stringgrid


14-1088488006
Думкин
2004-06-29 09:46
2004.07.18
С днем рождения! 29 июня


14-1088613697
Amit
2004-06-30 20:41
2004.07.18
Народ кто знает по каким дням у нас праздники?


14-1088657607
Vlad Oshin
2004-07-01 08:53
2004.07.18
длинные повторяющиеся сигналы в Award Biose v6?


3-1087570465
max1000
2004-06-18 18:54
2004.07.18
Как в SQL-запросе округлить число после запятой до двух символов