Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / UTF-8 & поиск с LIKE / 17 сообщений из 17, страница 1 из 1
13.10.2003, 16:17
    #32291519
Kubarik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UTF-8 & поиск с LIKE
Тривиальнейшая задача интернационализации: в базе данных, содержащей записи разных charset-ов (в моем случае кирилица и немецкий), пользователь хочет искать. Я выбрал UTF-8. Миграция данных - сказка. Вывод в браузер - небо в алмазах, но когда начал искать, то оказалось, что ни ASP ни SQL (statement LIKE) неспособны различать в уникодах большие и маленькие буквы, т.е. если в базе есть слово "Тест" и пользователь задает искать "Тест", то получает ответ, что найдено. Если же задаст "тест", то поиск безуспешен.

UTF-8 рекламируют как нечто новое и хорошее. Как же бороться с этой проблемой?
...
Рейтинг: 0 / 0
13.10.2003, 16:27
    #32291538
Yes!
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UTF-8 & поиск с LIKE
mdb or adp?
...
Рейтинг: 0 / 0
13.10.2003, 16:41
    #32291573
Kubarik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UTF-8 & поиск с LIKE
mdb 2ooo :o/
...
Рейтинг: 0 / 0
13.10.2003, 16:53
    #32291606
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UTF-8 & поиск с LIKE
where ucase(a) like ucase(b)
...
Рейтинг: 0 / 0
13.10.2003, 17:16
    #32291665
Kubarik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UTF-8 & поиск с LIKE
В том то и дело, что UCASE не преобразует unicode. Ни ASP ни SQL.

P.S. Разработка ведется в ASP с подключение mdb-файла через ADODB.
...
Рейтинг: 0 / 0
13.10.2003, 17:43
    #32291726
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UTF-8 & поиск с LIKE
Что-то странное. Не мог Микрософт такую бяку подсунуть. Может какая особенность есть? Типа свойства Сжимать Юникод-поле?
Кинь на всяк случай код подключения.
...
Рейтинг: 0 / 0
13.10.2003, 18:27
    #32291788
Kubarik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UTF-8 & поиск с LIKE
Как обычно:

set conn=server.createobject("adodb.connection")
conn.open "Provider=Microsoft.Jet.OLEDB.4.0; Persist Security Info=False; Data Source="&server.mappath("blin.mdb")&"; Jet OLEDB:Database Password=;"
...
Рейтинг: 0 / 0
13.10.2003, 22:59
    #32292005
Kubarik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UTF-8 & поиск с LIKE
никто не встречался с проблемой? :o/
...
Рейтинг: 0 / 0
13.10.2003, 23:13
    #32292013
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UTF-8 & поиск с LIKE
>никто не встречался с проблемой?

Я - нет. Посмотри свойства поля таблицы (Сжытие Юникода), посмотри индекс (удали-создай заново? а вдргу?) Случаем фигни типа совместимости с ANSY SQL92 не стоит? (у меня глючила бд капитально) Сделай маленькую демку (1 таблица - пару записей, пример выборки: выложи - форум посмотрит - мобуть чего и на советуют
...
Рейтинг: 0 / 0
14.10.2003, 08:10
    #32292144
Kubarik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UTF-8 & поиск с LIKE
Предложенное демо я уже испробывал: создал таблицу с 2 полями (с компримацией и без), записал туда пару слов (визуально никаких различий в полях), сделал выборку

set rs=conn.execute("select id, ucase(with_uni_compr) as with_uni_compr, ucase(without_uni_compr) as without_uni_compr from uni_test order by id desc")

и вывел в браузер:

<td><%=rs("with_uni_compr")%>&nbsp;<%=ucase(rs("with_uni_compr"))%></td>
<td><%=rs("without_uni_compr")%>&nbsp;<%=ucase(rs("without_uni_compr"))%></td>

Результат:
- "UCASE" игнорируется в обоих случаях;
- поиск с "LIKE" находит части слова, но игнорирует большие/маленькие буквы.


"фини типа совместимости с ANSY SQL92 не стоит?". Ммм... что имеется в виду?
...
Рейтинг: 0 / 0
14.10.2003, 11:44
    #32292434
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UTF-8 & поиск с LIKE
>типа совместимости с ANSY SQL92 не стоит?". Ммм... что имеется в виду?

Просмотрел, что у тебя Акес2000. Энто только для 2002
...
Рейтинг: 0 / 0
14.10.2003, 11:52
    #32292448
funddd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UTF-8 & поиск с LIKE
Кстати я сегодня столкнулся с такой же бедой.
Из MSSQL дергает Like '%" & request.querystring("searchstr") & "%'
А из Акса - Like '*" & request.querystring("searchstr") & "*' молчит...
причем, естественно в самом Аксе - все ОК...
но я еще не боролся, посему ответ не знаю...
...
Рейтинг: 0 / 0
14.10.2003, 12:01
    #32292460
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UTF-8 & поиск с LIKE
2funddd

Что касаемо сиквела- тут должно быть все просто: см. Collation //case-sensitive or case-insensitive//

или это вообще дурь ASP?
...
Рейтинг: 0 / 0
14.10.2003, 12:14
    #32292482
funddd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UTF-8 & поиск с LIKE
Похоже, да, грешить надо на АСП....
Или, возможно, на кривую реализацию OLEDB...
Или и на то и на другое вместе....

А про СКУЛЬ - там собственно, и объяснять-то ничего не надо.. Работает и пусть работает себе, чего голову ломать-то...

// "И почему-же это у нас СКУЛЬ работает? Непорядок" :)
...
Рейтинг: 0 / 0
14.10.2003, 12:32
    #32292519
funddd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UTF-8 & поиск с LIKE
Кстати, я свою проблему решил.

Почему-то подстановочный знак для "zero or more characters" в случае ASP для Accessa тоже %


8-()

бррр... не понимаю...
...
Рейтинг: 0 / 0
14.10.2003, 12:34
    #32292522
funddd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UTF-8 & поиск с LIKE
Естественно, что проблему топика это не решает - у меня кодовая страница только одна...
...
Рейтинг: 0 / 0
14.10.2003, 13:11
    #32292587
Kubarik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UTF-8 & поиск с LIKE
В LIKE-statenent ASP действительно используется %. Так было всегда и это действительно не решает проблемы:o/
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / UTF-8 & поиск с LIKE / 17 сообщений из 17, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]