![]() |
Задавайте вопросы, мы ответим
Вы не зашли.
Дано: сервер MySQL - база и все таблицы созданы в cp1251, все пишет и возвращает корректно. Случайно потребовалось создать view с возвращаемым параметром:
.....
concat(`main`.`Family`,_cp1251', ', `main`.`Year`,_cp1251'г.')
....
так почему-то позвращает в utf8? Кстати, когда вьюшку делал, то там вставилось _utf8, это уж я сам руками поправил. Сейчас сохранено как 1251, а букву г русскую не выводит- выводит Pi
Что подправить-посмотреть?
Неактивен
При создании представления учитывается кодировка (кстати, _cp1251 смысла писать
тоже нету, т.к. учитывается). Соответственно, самый простой способ — пересоздать
представление в нужной кодировке.
Ну и букву «г» выводит неправильно, потому что Вы создаете процедуру в консоли
utf8. В том смысле, что _cp1251'г.' — это «интерпретируй то, что написано в кавычках
так, как будто оно написано в 1251». А реально оно написано в utf8, поэтому такие
последствия. MySQL достаточно умный, пользуйтесь этим, а не пытайтесь задавить его
своим умом
Неактивен
Хм... а как это исправить? Именно в части "... создать вьюшку в другой кодировке..."?
Сервер на винде, въюшку создал через Navicat 8, Правда! -> в свойствах соединения с сервером стоит encoding UTF8. Из за этого что ли? Но ведь все другое работает? Созданный запрос, к примеру, вернул с русской буквой.
Неактивен
Ну, очевидно, нужен клиент, работающий в 1251, чтобы ввести русскую букву,
или вводить всё как есть, без указания кодировок, тоже должно работать
замечательно. В смысле — создавать в utf8, mysql сам всё будет перекодировать.
Неактивен
такая же проблема с шрифтами... есть база mysql. в нее из под делфовского приложения записал данные. возвращает данные тоже нормально... но вот незадача!!! почему-то не сравнивает upper(<поле>) = '<СТРОКА>'. постоянно возвращает nil... че делать???
Неактивен
Опишите, пожалуйста, метод подключения и компоненты
Неактивен
есть компонента MySQL и MySQLClasses, написанная неким Виталием Лещенко (www.vitaliy.org)
MySQL.Host := '127.0.0.1';
MySQL.Port := 3306;
MySQL.User := 'root';
MySQL.Password := ''; //пароль отсутствует. мое примечание
MySQL.Database := DBname; //присваивание имени бд
if MySQL.Database <> DBname then //если не равны значит бд отсутствует
ShowMessage('База данных '+ DBname + ' отсутствует.'+
#10#13+' Обратитесь к администратору.');
подключение происходит без траблов...
Неактивен
или как вообще из делфы нормально вставлять записи на русском в бд??? из-под мускула кирилица нормально вставляется и отображается, но эта же кирилица превращается в мусор в делфовском приложении...
может что посоветуете поюзать в связке delphi+mysql
Неактивен
Думаю, тогда вопросы по работе компоненты стоит задать непосредственно Виталию.
Я использовал ADO + ODBC, вроде бы, оно работало неплохо.
Неактивен
Действительно ADO+ODBC работают лучше, при одинаковых условиях. Видимо, при использовании компоненты Виталия, шрифт в мускул направлялся напрямую. а с использованием odbc судя по всему, шрифт из делфы сначала преобразуется в известный шрифт мускула, а потом уже передается. )) короче фигня какая-то... хотя в самой базе что до что после один фиг козябли пишет вместо русского языка.
Неактивен