powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Проблема: VFP -> MySQL = ????
14 сообщений из 14, страница 1 из 1
Проблема: VFP -> MySQL = ????
    #33702112
Uran-235
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Возникла такая проблема, не могу решить самостоятельно...
Кто сталкивался - помогите пожалуйста!

Есть база на MySQL 5 с colation CP1251_general и клиентская часть на VFP9 с CodePage 1251 . Соединение устанавливается через ODBC.
При передаче текстовых данных на русском языке имеем в MySQL содержимое вида ??????? .
Если загружать данные в базу другим способом, например через импорт данных из тестового файла .CSV в phpMyAdmin, то все загружается нормально.

В файле my.ini в клиентской и серверной частях установлено по дефолту cp1251 .

Понимаю, что проблема в различии кодировок в MySQL и VFP9, но не могу понять, как это исправить...

Заранее благодарен.

P.S.: пол дня мучал данный форум, так ничего и не нашел по данной проблеме. Есть что-то похожее, но все равно не то...
...
Рейтинг: 0 / 0
Проблема: VFP -> MySQL = ????
    #33702560
5631
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может, в устаревшем драйвере дело ?
...
Рейтинг: 0 / 0
Проблема: VFP -> MySQL = ????
    #33702938
Uran-235
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Немного соврал - версия MySQL 4.1.12a ...

Драйвер ODBC вроде бы самый последний, т.к. на сайте выложена версия Connector/ODBC 3.51. Есть еще Connector/ODBC 5.0 -- Alpha release, но как-то не хочется альфу использовать...

Вообще все установлено с пакетом AppServ 2.5.4a Packages и состав компонентов следующий:

Apache 2.0.54
MySQL 4.1.12a
PHP 5.0.4
phpMyAdmin-2.6.2pl1
MyODBC-3.51.11-2


Есть еще какие-нибудь мысли у кого-нибудь?
...
Рейтинг: 0 / 0
Проблема: VFP -> MySQL = ????
    #33703002
Uran-235
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все! Проблема решена!

Вот хорошее объяснение моей проблемы - http://www.sql.ru/forum/actualthread.aspx?tid=204795#2427181

В моем случае потребовалось перед началом передачи данных выполнить следующее:

StrSQL = "set character_set_client=cp1251;"
SQLEXEC(nConnect,StrSQL)

StrSQL = "set character_set_connection=cp1251;"
SQLEXEC(nConnect,StrSQL)

StrSQL = "set character_set_results=cp1251;"
SQLEXEC(nConnect,StrSQL)


После чего передача данных происходит корректно...

Удачи всем! ;)
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Проблема: VFP -> MySQL = ????
    #38171829
ilsidore
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Давно не поднималась эта тема! Всем привет! Столкнулся с аналогичной проблемой, но никак её не поборю. На удаленном хостинге logol.ru, поднят MySql, у меня на машине Fox 9. Соединение с базой осуществляю через пользовательский источник данных DSN. D В confige CODEPAGE=1251. Соединение устанавливается, делаю пробную выборку из тестовой таблицы, получаю знаки вопросов вместо русских символов.

PUBLIC hConn
STORE SQLCONNECT('odbc_point', '', '') TO hConn
IF hConn <= 0
MESSAGEBOX('')
RETURN .f.
ELSE
ENDIF


textcommand=;
"select * "+;
"from tb_test "
nerr = SQLEXEC(hConn, textcommand, 'vw_test')

Пробовал выше указанное решение автора топика, не помогло? Подскажите, где почитать про это есть или что мне испробовать? Fox только установил, может где то какую изюминку забыл в настройках?
...
Рейтинг: 0 / 0
Проблема: VFP -> MySQL = ????
    #38171831
ilsidore
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подцепляюсь к базе через мускул воркбенч последней версии что на офсайте, естественно всё отлично показывает, никаких проблем.
...
Рейтинг: 0 / 0
Проблема: VFP -> MySQL = ????
    #38171902
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ilsidore,

set names cp1251 не выполняли?
...
Рейтинг: 0 / 0
Проблема: VFP -> MySQL = ????
    #38172736
ilsidore
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попробовал так:

StrSQL = "set names cp1251;"
SQLEXEC(hConn,StrSQL)

На примере топикстартера, не помогло или не правильно что делаю?
...
Рейтинг: 0 / 0
Проблема: VFP -> MySQL = ????
    #38172765
ilsidore
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PUBLIC pConect
lcDRIVER = "MySQL ODBC 5.2w Driver"
lcUID = "****"
lcSTMT = "set names cp1251"
lcOPTION = "3"
lcSOCKET = ""
lcPORT = "3306"
lcPASSWORD = "admin"
lcSERVER = "*************"
lcDB = "************"
lcDESC =""

lcODBC = '"DRIVER='+lcDRIVER+';UID='+lcUID+';STMT='+lcSTMT+';OPTION='+lcOPTION+';SOCKET='+lcSOCKET+';PORT='+lcPORT+';PASSWORD='+lcPASSWORD+';SERVER='+lcSERVER+';DB='+lcDB+';DESC='+lcDESC+'"'
lnOk = SQLSetProp(0,"DispLogin",3)
pConect = SQLSTRINGCONNECT(&lcODBC)

попробовал так. Выполняю запрос по прежнему знаки вопросов вместо русских бука. Форум уже перерыл весь, проблема видимо не новая, но из всех объяснений не понял как решить проблему
...
Рейтинг: 0 / 0
Проблема: VFP -> MySQL = ????
    #38173066
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надо форум по MySQL смотреть. Здесь-то какой смысл? Тем более, многое зависит еще и от версии MySQL. Вот здесь достаточно подробно все расписано

FAQ: Проблемы с кодировкой в MySQL версий 4.1+

Ну, еще здесь можно посмотреть

Проблемы русской кодировкой
...
Рейтинг: 0 / 0
Проблема: VFP -> MySQL = ????
    #38175358
ilsidore
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Владимир спасибо за ссылки, теперь хоть имею небольшое представление в этих кодировках. Но с задачей по прежнему не справился!
Создал на удаленном мускуле табличку тестовую, table1, задал ей collation cp1251-default collation. В таблице одно поле name? вбиваю значение -Вова, цепляюсь через тестовую прогу из фокса, создаю запрос и по прежнему вопросы вместо русских символов.
запросил show create table вот что выдал 'table1', 'CREATE TABLE `table1` (\n `name` varchar(10) DEFAULT NULL\n) ENGINE=MyISAM DEFAULT CHARSET=cp1251'. Что ещё я мог упустить? В файле config.fpw CODEPAGE=1251. Пробовал set names cp1251; безрезультатно...
...
Рейтинг: 0 / 0
Проблема: VFP -> MySQL = ????
    #38175447
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ilsidoreПробовал set names cp1251; безрезультатно...Потому что надо было
Код: sql
1.
set names 'cp1251'

если ничего не получается, прочитайте, в конце концов, ртфм по синтаксису используемых команд :)
...
Рейтинг: 0 / 0
Проблема: VFP -> MySQL = ????
    #38176085
Sea_Cat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ilsidore,
Согласно документации на драйвер ( http://dev.mysql.com/doc/refman/5.1/en/connector-odbc-configuration-connection-parameters.html) , для указания кодировки рекомендуется использовать параметр charset (см.пример - http://www.connectionstrings.com/mysql)
В примечании сказано - указывать кодировку в нижнем регистре

Параметр stmt строки инициализации после версии 3.51 заменен на initstmt , хотя должна обеспечиваться обратная совместимость.

И еще, с драйвером версии 5.2w работать не приходилось, но для 3.51 и 5.1 проблем с кодировкой не было.
...
Рейтинг: 0 / 0
Проблема: VFP -> MySQL = ????
    #38176710
ilsidore
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасла вот эта строчка - lcSTMT = "set names=cp1251;charset=cp1251;collation=cp1251_cs"
Всем огромное Спасибо помогли научили!
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Проблема: VFP -> MySQL = ????
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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