Вход | Регистрация
 

"ADODB.Connection" проблема с кодировкой

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

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

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

исправить и после ребута проверь.
   Amra
 
13 - 08.06.10 - 16:23
(11) Кстати да, у меня это тоже есть
(12) Не надо ничего подобного
   KrutVladimir
 
14 - 08.06.10 - 16:25
(12)
У нас уже это исправлено было ранее
   KrutVladimir
 
15 - 08.06.10 - 16:33
(11)
Я не совсем понял куда это вставлять, можно немного подробнее?
   Amra
 
16 - 08.06.10 - 16:41
Соединение.Execute("set names 'cp1251'") , потом 
Соединение.Execute("UPDATE jos_content SET introtext=Convert('Текст 1' using cp1251) WHERE id=175")
   smaharbA
 
17 - 08.06.10 - 16:44
Соединение.Execute("set names 'cp1251';UPDATE jos_content SET introtext='Текст 1' WHERE id=175");
   KrutVladimir
 
18 - 08.06.10 - 16:57
(16)(17)
Выдает ошибку:
SET NAMES not allowed by driver
   Amra
 
19 - 08.06.10 - 17:02
Какая версия скуля стоит на твоей машине?
   IOL
 
20 - 08.06.10 - 17:15
(0) посмотри что в конфиге мускула прописано, defaut_char_set и тоже самое для клиента
   KrutVladimir
 
21 - 08.06.10 - 17:19
(19)
mysqld-5.0.51a-24+lenny3
   KrutVladimir
 
22 - 08.06.10 - 17:22
(20)
А в каком файле defaut_char_set должен находится?
Что-то не найдем
   smaharbA
 
23 - 08.06.10 - 18:03
SET character_set_client='cp1251';SET character_set_results='cp1251';SET character_set_connection='cp1251';...
   IOL
 
24 - 08.06.10 - 18:54
в виндовой версии mysql.ini or my.ini
   IOL
 
25 - 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
   KrutVladimir
 
26 - 09.06.10 - 12:52
Я проверил на другом сайте, все получилось!
Сайты работают на одном компьютере, разные только joomlы, мне нужно было на j1.0 а получилось на j1.5 ну и базы там отличаются скорее всего проблема в этом!
Разбираться пока не буду попробую настроить для j1.5 а потом возможно и перетащу всех пользователей туда.

Всем спасибо !!!


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Ветка сдана в архив. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.