проблема с русскими буквами

Запросы, планы, оптимизация запросов, ...

Модераторы: kdv, CyberMax

Ответить
buratino
Сообщения: 11
Зарегистрирован: 22 сен 2010, 16:26

проблема с русскими буквами

Сообщение buratino » 22 сен 2010, 16:33

Добрый день!
есть:
несколько пользователей.
всем отдавалась одна и та же база. При создании указывалась WIN1251. Пользователи только добавляют записи в таблицы с помощью одно и той же прог-мы (хотя, кто его знает).
сейчас
на одной из баз не выполняется селект по русским буквам со стандартным сообщением "Cannot transliterate character between character sets".
Поиск данных выполняется той же программой, что и у пользователей для добавления.
Используется FB 1.5, FIB. В программе при коннекте WIN1251 указывается. В Эксперте в свойствах базы указан charset и collate WIN1251.

Что может быть?
Спасибо

gmixo
Сообщения: 8
Зарегистрирован: 22 сен 2010, 08:44

Re: проблема с русскими буквами

Сообщение gmixo » 23 сен 2010, 09:48

настройки системы разные?
в твоей программе кодировка задаётся?

buratino
Сообщения: 11
Зарегистрирован: 22 сен 2010, 16:26

Re: проблема с русскими буквами

Сообщение buratino » 23 сен 2010, 10:34

да, конечно. я же написал "в программе при коннекте WIN1251 указывается".
так
......
DM->pFIBDb->Connected=false;
DM->pFIBDb->ConnectParams->CharSet="WIN1251";
DM->pFIBDb->ConnectParams->Password=frmSetConnParam->PasswordE->Text;
DM->pFIBDb->ConnectParams->UserName=frmSetConnParam->UserNameE->Text;
.....
настройки системы?
а какие? я соединяюсь и использую FIB - там , как я понимаю, достаточно написанного выше.
кроме того, я сейчас проверяю обе базы на ОДНОЙ своей машине и получаю разные результаты.(т.е., по одной получаю результат, а по другой - ошибку).
получается, однозначно, что где- то в содежимом базы собака порылась

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Re: проблема с русскими буквами

Сообщение kdv » 23 сен 2010, 10:39

есть вероятность, что где-то данные занесли без указания чарсета.
подключитесь в none, посмотрите на эти данные.
В Эксперте в свойствах базы указан charset и collate WIN1251.
при чем тут эксперт? Кроме того, "в свойствах базы" ни в эксперте ни в базе никакого collate нет.

buratino
Сообщения: 11
Зарегистрирован: 22 сен 2010, 16:26

Re: проблема с русскими буквами

Сообщение buratino » 23 сен 2010, 11:51

вставить скрин из эксперта не получилось.
но, в астере таблицы, на закладке FIELDS в строке для нужных колонок в графах CHARSET и COLLATE указано WIN1251

buratino
Сообщения: 11
Зарегистрирован: 22 сен 2010, 16:26

Re: проблема с русскими буквами

Сообщение buratino » 23 сен 2010, 11:56

kdv писал(а):есть вероятность, что где-то данные занесли без указания чарсета.
подключитесь в none, посмотрите на эти данные.
В Эксперте в свойствах базы указан charset и collate WIN1251.
при чем тут эксперт? Кроме того, "в свойствах базы" ни в эксперте ни в базе никакого collate нет.
подключился в эксперте к базе с charset=none .
открыл таблицу - в этих полях все равно видны русские буквы. И то это значит? я ожидал, что будут кракозяблики.
что нужно сделать, чтобы базу привести в "нормальное" (как во всех подобных базах) состояние ?

Dimitry Sibiryakov
Заслуженный разработчик
Сообщения: 1436
Зарегистрирован: 15 сен 2005, 09:05

Re: проблема с русскими буквами

Сообщение Dimitry Sibiryakov » 23 сен 2010, 15:04

buratino писал(а):И то это значит? я ожидал, что будут кракозяблики.
Это значит, что кое-кто не читал "FAQ по работе с русскими буквами"...

buratino
Сообщения: 11
Зарегистрирован: 22 сен 2010, 16:26

Re: проблема с русскими буквами

Сообщение buratino » 23 сен 2010, 16:06

Dimitry Sibiryakov писал(а):
buratino писал(а):И то это значит? я ожидал, что будут кракозяблики.
Это значит, что кое-кто не читал "FAQ по работе с русскими буквами"...
нда, исчерпывающе
понятно, что не всегда хочется отвлекаться и рассказывать прописные истины. но это для Вас.
Если Вы имеете в виду FAQ-раздел форума, то я в него войти не могу запрашивается пароль.
Если FAQ на ibase.ru (http://ibase.ru/ibfaq.htm#interclient) , то я его читал.
И потом. Как объяснить, что добавление идет в одну базу (созданную один раз и размноженную по объектам) с помощью одной программы (уверен на 98%).
Т.е., даже если Вы напишите, что неправильные параметры при коннекте или при вводе данных, то почему они на одних объектах ведут себя правильно, а на других нет.
а результат разный.

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Re: проблема с русскими буквами

Сообщение kdv » 23 сен 2010, 23:07

Если Вы имеете в виду FAQ-раздел форума, то я в него войти не могу запрашивается пароль.
странно, проверю, но имелся в виду
www.ibase.ru/devinfo/ibrusfaq.htm

и вообще имелось в виду что КТО-ТО нахреначил данных БЕЗ кодировки win1251 в Вашу базу, только и всего. А раз эти данные не в win1251, то значит при подключении с такой кодировкой сервер выдает ошибку транслитерации данных.
Если FAQ на ibase.ru (http://ibase.ru/ibfaq.htm#interclient) , то я его читал.
я не знаю, при чем тут Java-клиент
на закладке FIELDS в строке для нужных колонок в графах CHARSET и COLLATE указано WIN1251
это другое. это кодировка и коллэйт столбца.
Т.е., даже если Вы напишите, что неправильные параметры при коннекте или при вводе данных, то почему они на одних объектах ведут себя правильно, а на других нет.
потому что в одной базе ввели данные с кривой кодировкой, а в другой - с правильной.

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Re: проблема с русскими буквами

Сообщение kdv » 24 сен 2010, 10:56

Если Вы имеете в виду FAQ-раздел форума, то я в него войти не могу запрашивается пароль.
кстати, чудеса. меня самого просит ввести пароль, даже под админской учеткой. Пытался исправить, но пока не получается.
Если ввести тот же пароль, что и при логине, то вроде туда заходит.

upd. гм, случайно установился пароль на доступ к разделу FAQ. Пароль снят, все работает.

buratino
Сообщения: 11
Зарегистрирован: 22 сен 2010, 16:26

Re: проблема с русскими буквами

Сообщение buratino » 24 сен 2010, 13:41

kdv писал(а):
Если Вы имеете в виду FAQ-раздел форума, то я в него войти не могу запрашивается пароль.
кстати, чудеса. меня самого просит ввести пароль, даже под админской учеткой. Пытался исправить, но пока не получается.
Если ввести тот же пароль, что и при логине, то вроде туда заходит.

upd. гм, случайно установился пароль на доступ к разделу FAQ. Пароль снят, все работает.
Спасибо.
В FAQ зашел , просмотрел. Собственно, явно причину не увидел.
Выше приводил кусок программы - поскольку использую FIBPlus, то единственно, что нужно сделать - установить WIN1251 ДО подключения к БД. Это у меня есть.
Т.е., остается предположение, что этот юзер добавил новые данные (изменил старые) не с помощью предлагаемой программы, а сторонней.
Вышел из положения так - выгрузил данные из "плохой" базы (выгрузка метаданных в IBExpert-e), затем выполнил скрипт и загрузил в "хорошую" базу.
Всем спасибо.

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Re: проблема с русскими буквами

Сообщение kdv » 24 сен 2010, 15:54

Т.е., остается предположение, что этот юзер добавил новые данные (изменил старые) не с помощью предлагаемой программы, а сторонней.
Вышел из положения так - выгрузил данные из "плохой" базы (выгрузка метаданных в IBExpert-e), затем выполнил скрипт и загрузил в "хорошую" базу.
если он оперирует IBExpert-ом, то он мог и в нем не установить win1251 для коннекта, и таким образом занести данные без кодировки.

Ответить