![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как искать в базе без учета регистра букв?
Piter © (2004-06-22 21:11:00)А то like ищет только при полном совпадении...
Piter (2004-06-23 14:47:00) [1]А что делать, если мне надо искать в Blob русские фразы без учета регистра?
Piter (2004-06-23 14:19:00) [2]Danilka (23.06.04 12:56) [29]
спасибо большое! У меня не было поддиректории intl :( Теперь все ок!
Danilka (2004-06-23 12:56:00) [3][28] Piter © (23.06.04 12:34)
в архиве с FB embedded есть папка doc, в ней файл README_embedded.txt, почитай его.
У меня тоже получилось сделать так, перестали быть доступны кодировки: после того, как я удалил каталог intl содержащий файл fbintl.dll.
Piter (2004-06-23 12:34:00) [4]Danilka (23.06.04 12:14) [27]
ну не знаю... у меня FB EMBD ни в какую не воспринимает WIN1251 кодировку... не знает он ее и все...
Danilka (2004-06-23 12:14:00) [5][26] Piter © (23.06.04 12:03)
для этого достаточно просто остановить сервер, что я и сделал, после чего, у меня базы перестали быть доступны через gds32.dll писал ошибку.
Piter (2004-06-23 12:03:00) [6]max1000 (23.06.04 11:34) [23]
у тебя именно Firebird Embedded?
Danilka (23.06.04 11:38) [24]
а ты можешь попробовать деинсталлировать firebird вообще и удалить файл gds32.dll в директории с Windows? Чтобы программа точно пользовалась FB EMBD библиотекой... может, у тебя все работает, потому что все таки соединение через сервер идет...
Piter (2004-06-23 12:00:00) [7]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"
Danilka (2004-06-23 11:38:00) [8][22] Piter © (23.06.04 11:31)
Я не знаю в чем у тебя проблема, т.к. давно очень работал с FB и мало, а с Embedded только сейчас первый раз поробовал, и у меня все ок. Спроси у кого-нибудь еще, например, у Johnmen. :))
max1000 (2004-06-23 11:34:00) [9]Я попробывал вот так
SELECT * FROM schet Where UPPER(name) like '%МАРТИНЕНКО%'
Все заработало и без OLLATE PXW_CYRL
Piter (2004-06-23 11:31:00) [10]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)"
Danilka (2004-06-23 11:23:00) [11][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:15:00) [12]Danilka (23.06.04 11:06) [18]
select * from goods
where upper(goods_name) like 'СТАР%'
у меня тоже отрабатывает как положеное, в т.ч. и с русскими буковками
ну а это как возможно? Ты когда таблицы создавал COLLATE указывал?
Piter (2004-06-23 11:12:00) [13]Johnmen (23.06.04 10:53) [16]
Это твоя мнительность тебе сказала...
угу. У тебя в данной ветке ни одного сообщения по делу... давай не будет продолжать?
Danilka (23.06.04 11:06) [18]
а при создании базы ты DEFAUL CHARSET какой указывал?
Danilka (2004-06-23 11:06:00) [14][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 'СТАР%'
у меня тоже отрабатывает как положеное, в т.ч. и с русскими буковками. :))
Vlad (2004-06-23 10:55:00) [15]попробуй так
select * from telephones where UPPER(name COLLATE WIN1251) like _WIN1251 '%ЗНАЧЕНИЕ%'
Johnmen (2004-06-23 10:53:00) [16]>Piter © (23.06.04 10:46) [15]
>не надо издеваться. Даже звание мастера не разрешает тебе это
>делать. Ок? Давай или по делу или никак.
Хм... Это твоя мнительность тебе сказала...
:)
Piter (2004-06-23 10:46:00) [17]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:34:00) [18]>Piter © (23.06.04 10:32) [12]
>может, поделишься знаниями?
Поделюсь. Какими ?
>Я смотрю ты все знаешь,...
А разве это возможно ? :)))
Danilka (2004-06-23 10:33:00) [19][9] Piter © (23.06.04 10:27)
> ты знаешь, что такое Embedded?
Думаю, что знаю. :))
Расскажи, плиз, как это может повлиять на COLLATE, очень интересно. :))
Piter (2004-06-23 10:32:00) [20]Johnmen (23.06.04 10:27) [10]
Я смотрю ты все знаешь, но не говоришь... может, поделишься знаниями?