1c + mysql 5
Гость 12 апреля, 2007 - 06:03
Что имеем:
сервер mysql 5.0.26 на Gentoo (кодировка таблиц cp1251)
1с, на виндовых клиентах, подключатся к mysql через odbc
Проблема:
При запросах через 1С, в таблицу записываются одни ??????????
При копировании этих же запросов в sqlyog, запись нормальна.
Причем 1С при чтении выводит ???????? даже если в mysql запись в нормальной кодировке (sqlyog правильно читает эту запись).
Получается проблема в 1С? Или в драйвере ODBC?
»
- Для комментирования войдите или зарегистрируйтесь
Кодировки
Проблема где-то в несоответсвии кодировок я полагаю. А где - тут уж копать долго можно. Это и ODBC может быть и куча настроек MySQL (от глобальных до кодировки таблицы).
В my.cnf во всех
В my.cnf во всех разделах стоит cp1251.
1С тоже работает в кодировке 1251.
Я вывожу все запросы на экран. Копирую их в sqlyog. Все работает замечательно (хотя многие таблицы у меня созданы в utf8).
А вот писать через odbc не получается. Все те же ???????. Как при записи так и при чтении.
У odbc в этом смысле есть какие нибудь настройки?
Решение для проблемы русского языка в связке 1С+MySQL
После того как выполнено подключение к БД MySQL первым запросом необходимо выполнить слеующую строку:
"set names 'cp1251'"
Пример:
Query = "set names 'cp1251'";
Cmd.CommandText = Query;
Cmd.Execute();
Виндовая
Виндовая кодировка и CP1251 наверно не совпадают (хотя должны).
Когда запускал 1С в wine с кодировкой CP1251, 1С все равно ругалась на несоответствие кодировки, пришлось конвертить в локальную. 1С из под Винды опять обругала эту сконвертированную базу - пришлось опять выбирать 1251.
В чем проблема сам не разобрался.
попробуй в my.cnf
попробуй в my.cnf прописать
default-charset-set=cp1251
collation-server=cp1251_general_ci
init-connect="SET NAMES cp1251"
skip-charset-set-client-handshake
это заставит принудительно использовать кодировку cp1251
была такая
была такая трабла, на сайте вопросики отображались. SQLyog всё читал.
не помню, что именно подправил, но дело было в конфиге