Имя: Пароль:
1C
 
"ADODB.Connection" проблема с кодировкой
0 KrutVladimir
 
08.06.10
14:48
Написал обработку которая меняет информацию на сайте, но что-то с кодировкой не получается :(

если запустить ниже приведенную обработку, то в место условного «Текст 1» на сайте появляется «????? 1»

Соединение = CreateObject("ADODB.Connection");
Соединение_param = "driver={MySQL ODBC 5.1 Driver}; server=192.168.37.2; uid=srv_user; pwd=159753; database=mydb;port=3306";
Соединение.open(Соединение_param);
Соединение.Execute("UPDATE jos_content SET introtext='Текст 1' WHERE id=175");
Соединение.close();

Может кто-то уже сталкивался с похожей проблемой, подскажите пожалуйста
1 ДенисЧ
 
08.06.10
14:50
charset=cp1251;
в строку соединения добавь...
2 KrutVladimir
 
08.06.10
14:59
Соединение = CreateObject("ADODB.Connection");
Соединение_param = "driver={MySQL ODBC 5.1 Driver}; server=192.168.37.2; uid=srv_user; pwd=159753; database=mydb;port=3306; charset=cp1251";
Соединение.open(Соединение_param);
Соединение.Execute("UPDATE jos_content SET introtext='Текст 1' WHERE id=175");
Соединение.close();

Добавил, но это не сработало
3 ДенисЧ
 
08.06.10
15:01
ну, значит, у тебя там не 1251... Логично? :-)
ЧТо у тебя сайт за кодировку ждёт? Ту и пиши...
4 Amra
 
08.06.10
15:02
Скорее всего utf8, сам бодался с полгода назад с этим.
5 KrutVladimir
 
08.06.10
15:07
utf8
Нет, не получилось
Там стоит Joomla и кодировка ИМХО 1251. Я думаю может с 1С передается в ДОС кодировке, это предположение.
6 Moriarti
 
08.06.10
15:20
На самом серваке русский вообще установлен?
Было что-то похожее, именно с ADODB.Connection только в MSSQL, на сервак "????" шли.
7 KrutVladimir
 
08.06.10
15:23
Как проверить?
8 KrutVladimir
 
08.06.10
15:27
Получаю с сайта в нормальной кодировке (не указываю кодировку) а при посылки запроса редактирования кодировка ломается
9 Amra
 
08.06.10
15:33
Соединение.Execute("UPDATE jos_content SET introtext=Convert('Текст 1' using cp1251) WHERE id=175")

Попробуй так, суть в функции Convert - у меня так работает
10 KrutVladimir
 
08.06.10
15:52
(9)
Что-то нет, не получилось.
Попробую поковырять в этом направлении
11 smaharbA
 
08.06.10
16:13
выполни
set names 'cp1251';...
12 Moriarti
 
08.06.10
16:15
(7) Вообще туплю я.
mysql на каком серваке стоит? На линуксовом?
А ты с виндовой машины из 1Сины хочешь коннектиться и контент править в mysql-ных табличках?

Попробуй тогда на локальной мащине ключик
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage]
"1252"="c_1251.nls"

исправить и после ребута проверь.
13 Amra
 
08.06.10
16:23
(11) Кстати да, у меня это тоже есть
(12) Не надо ничего подобного
14 KrutVladimir
 
08.06.10
16:25
(12)
У нас уже это исправлено было ранее
15 KrutVladimir
 
08.06.10
16:33
(11)
Я не совсем понял куда это вставлять, можно немного подробнее?
16 Amra
 
08.06.10
16:41
Соединение.Execute("set names 'cp1251'") , потом
Соединение.Execute("UPDATE jos_content SET introtext=Convert('Текст 1' using cp1251) WHERE id=175")
17 smaharbA
 
08.06.10
16:44
Соединение.Execute("set names 'cp1251';UPDATE jos_content SET introtext='Текст 1' WHERE id=175");
18 KrutVladimir
 
08.06.10
16:57
(16)(17)
Выдает ошибку:
SET NAMES not allowed by driver
19 Amra
 
08.06.10
17:02
Какая версия скуля стоит на твоей машине?
20 IOL
 
08.06.10
17:15
(0) посмотри что в конфиге мускула прописано, defaut_char_set и тоже самое для клиента
21 KrutVladimir
 
08.06.10
17:19
(19)
mysqld-5.0.51a-24+lenny3
22 KrutVladimir
 
08.06.10
17:22
(20)
А в каком файле defaut_char_set должен находится?
Что-то не найдем
23 smaharbA
 
08.06.10
18:03
SET character_set_client='cp1251';SET character_set_results='cp1251';SET character_set_connection='cp1251';...
24 IOL
 
08.06.10
18:54
в виндовой версии mysql.ini or my.ini
25 IOL
 
08.06.10
18:57
D:\AppServ\mysql\bin\my.ini                 DOS
#This File was made using the WinMySQLAdmin 1.3 Tool

#25/8/2003 8:50:22



#Uncomment or Add only the keys that you know how works.

#Read the MySQL Manual for instructions


[mysqld]
default-character-set=cp1251
basedir=d:/AppServ/mysql
#bind-address=
datadir=d:/AppServ/mysql/data
#language=C:/AppServ/mysql/share/your language directory
#slow query log#=
#tmpdir#=
#port=3306
#set-variable=key_buffer=16M
[client]
default-character-set=cp1251
26 KrutVladimir
 
09.06.10
12:52
Я проверил на другом сайте, все получилось!
Сайты работают на одном компьютере, разные только joomlы, мне нужно было на j1.0 а получилось на j1.5 ну и базы там отличаются скорее всего проблема в этом!
Разбираться пока не буду попробую настроить для j1.5 а потом возможно и перетащу всех пользователей туда.

Всем спасибо !!!
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.