Задавайте вопросы, мы ответим
Вы не зашли.
Прошу прощения за свою некомпетентность.
Помогите подружить MySQL с Access. Пожалуйста.
Клиент переехал на новую платформу и Access стал показывать кракозяблы.
1. Было до переезда:
Сервер:
Win XP SP3 32Bit (Англоязычный с русскими шрифтами)
MySQL 5.0
БД в кодировке latin1 (cp1252), названия колонок - utf8
Клиент:
Win 7 SP1 32Bit (Русская, корпоративная)
MySQL ODBC 3.51 Driver
MS Access 2010 со связанными таблицами на сервере.
До переезда в таблицах русские буквы отображались без проблем.
2. После переезда:
Сервер тот же.
Клиент:
Win 7 SP1 64Bit (Русская, корпоративная)
MySQL ODBC 5.3 Unicode Driver
MS Access 2013 с теми же связями.
3. В результате:
- в таблицах MySQL на сервере то же самое "àáâãäå¸", что и было до переезда. Это ожидаемо, т.к. на сервере ничего не менялось.
- в таблицах Access неперекодированное "àáâãäå¸" вместо ожидаемого "абвгдеё". До переезда все перекодировалось нормально.
- замена драйвера на MySQL ODBC 5.3 ANSI Driver не помогает. Access выводит другие, но тоже "зяблы".
- перекодирование БД в cp1251 нежелательно и непредсказуемо, т.к. Access при попытке ввода русских букв в поля TEXT ругается на превышение размера данных над полем, хотя английские буквы кушает без вопросов.
- попытки угадать правильные character-set и collation в my.ini не принесли ровно никакого результата - при любых сочетаниях настроек ничего не происходит. В полях таблиц Access точно то же самое и строго одно и тоже - "àáâãäå¸". Не меняется вообще. Хотя на старом клиенте все изменения видны четко - текст из "абвгдеё" становится нечитаемым при любых изменениях настроек в my.ini
- изменения в коде VBA MS Access SQL-запросов невозможны. И я считаю - бесполезны, т.к. проблема наблюдается еще до того места, где я могу формировать какие-либо запросы по желанию, т.е. - уже на стадии чтения связанных таблиц самим Access'ом из БД сервера. Хотя возможно я ошибаюсь - поправьте, если не так.
- пляски с бубном утомительны и тоже не помогают. Не отправляйте в этом направлении, пожалуйста.
- изучение документации в поисках истины также невозможно в силу ряда причин. Прошу простить за это.
Поможете ?
-
Неактивен
khext написал:
- перекодирование БД в cp1251 нежелательно и непредсказуемо, т.к. Access при попытке ввода русских букв в поля TEXT ругается на превышение размера данных над полем, хотя английские буквы кушает без вопросов.
так ведь у вас на старом клиенте в аксесе отображались русские буквы? и вы их редактировали?
трогать my.ini не нужно
ищите настройки MySQL ODBC 5.3 Unicode Driver и там стучите в бубен, если есть возможность сравните с тем что было на старом клиенте
Но, имхо, вся ваша конструкция сплошной бубен, и будет лучше переделать mysql в cp1251.
сделайте тестовую базу в mysql в cp1251 и проверьте будет ли в новом аксесе "при попытке ввода русских букв в поля TEXT ругается на "?
Неактивен
Сделал новую таблицу в cp1251, в настройках ODBC указал Character Set cp1251.
Access не ругается, кодировку видит нормально.
Не могу заставить его видеть старые таблицы, созданные в latin1. Можно как-то сделать ?
Другой вариант - пересобрать все таблицы заново с cp1251 точно напоминает танец с бубном.
Как делал :
- собрал бакапы через MySQL Administrator GUI
- перекодировал utf8 -> ANSI
- дописал в конструкцию CREATE TABLE : character set cp1251
- залил все обратно через CLI : SOURSE D:\бакап.sql
- получил на выходе совсем фигню : "???????"
Понятно, что где-то косяк при перекодировке, но понять где не изучая MySQL - бубен.
Скажите, не пиная, как нужно ?
Как заставить mysql.exe перебакапить БД в нужной кодировке ? т.е. - 1251.
Или как заставить ODBC перекодировать данные из latin1 в 1251 ?
Неактивен
khext написал:
Скажите, не пиная, как нужно ?
Как заставить mysql.exe перебакапить БД в нужной кодировке ? т.е. - 1251.
подробная инструкция тут: http://sqlinfo.ru/articles/info/5.html
Неактивен