Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > 1C: Предприятие, SAP, ERP и учётные системы > 1c и внешняя MySQL


Автор: Igor_CH 18.12.2008, 18:50
Пытаюсь залить данные на на внешний сервер в базу MySQL

ЗагрузитьВнешнююКомпоненту("MyDB.dll");
RS = СоздатьОбъект("БыстрыйРегистр");
RS.Инициализация(TrimAll(server),TrimAll(dbname),TrimAll(dbname),TrimAll(password));
DoQuery("SET OPTION CHARACTER SET cp1251_windows");

Но выходит вот такая ошибка:
"Не выполнилось пост-подключение к серверу базы данных! Причина: Client does not support authentication protocol requested by server; consider upgrading MySQL client"

пожалуйста подскажите как побороть?

Автор: Date 20.12.2008, 14:43
Цитата(Igor_CH @  18.12.2008,  21:50 Найти цитируемый пост)
Client does not support authentication protocol requested by server; consider upgrading MySQL client

 Клиент не поддерживает протокол аутентификации запрошенный сервером; необходимо модернизировать клиента MySQL.
это если дословно.. 


я уже около месяца решаю задачу переноса (аналогичных) данных из 1С в MySQL. 

мой тебе совет: лучше НЕ использовать MyDB.dll - очень сильно тормозит при переносе большого количества данных. 
лучше через url.

если интересно то могу сбросить исходники 1С и PHP скрипта...

Автор: Mocco 21.1.2009, 00:45
Код 1с    
Код

Соединение = CreateObject("ADODB.Connection");
Соединение_param = "dsn=base;";
Соединение.open(Соединение_param);
РекордСет = СоздатьОбъект("ADODB.Recordset");
РекордСет.ActiveConnection = Соединение;
РекордСет.Open("set names cp1251");



Через ODBC создаем соединение
http://img132.imageshack.us/my.php?image=123kq8.png

В локалке работает на УРА! Если надо что-то уточнить - пиши.  smile 

Автор: AkelaSQL 21.1.2009, 10:49
Вот рабочий код для 1С 8.1:

Код

Соединение = Новый COMОбъект("ADODB.Connection");

Если Объект.ТипБазы = Перечисления.ТипБазыРегистратора.MySQL Тогда
    Соединение.ConnectionString = "DRIVER={MySQL ODBC 3.51 Driver};OPTION=3;DATABASE=" +
    СокрЛП(Объект.ИмяБазыДанных) + ";PWD=" +
    СокрЛП(Объект.Пароль) + ";PORT=3306;SERVER=" +
    СокрЛП(Объект.ИмяСервера) + ";UID=" +
    СокрЛП(Объект.ИмяПользователя) + ";CHARSET=UTF8;";
    Соединение.ConnectionTimeout = 60;
    Соединение.CursorLocation = 3;
            
    НаборЗаписей = Новый COMОбъект("ADODB.Recordset");
    Команда = Новый COMОбъект("ADODB.Command");
    Параметр = Новый COMОбъект("ADODB.Parameter");
             
    Попытка
        Соединение.Open();
    Исключение
        Сообщить(ОписаниеОшибки());
    КонецПопытки;
            
    ТекстЗапроса = "
    |SELECT
    |`getcardnumber`(`pkey_card`) as KodKart,
    |CAST(DATE_FORMAT(`datetime_contr`, '%Y%m%d') AS CHAR(8)) as datasub,
    |CAST(DATE_FORMAT(MIN(`datetime_contr`),'%T') AS CHAR(8)) as vhod,
    |CAST(DATE_FORMAT(MAX(`datetime_contr`),'%T') AS CHAR(8)) as vihod
    |FROM `arch_events`
    |WHERE ((`mark` = 0) or (`mark` IS NULL)) and (`getcardnumber`(`pkey_card`) <> '0000000000000000')
    |GROUP BY `getcardnumber`(`pkey_card`), CAST(DATE_FORMAT(`datetime_contr`, '%Y%m%d') AS CHAR(8))
    |ORDER BY `getcardnumber`(`pkey_card`)
    |";
            
    Попытка
        // Выборка данных и перебор результата запроса 
        Команда.ActiveConnection = Соединение;
        Команда.CommandText = ТекстЗапроса;
        НаборЗаписей = Команда.Execute();
        ВыборкаСтрокС = НаборЗаписей;
    Исключение
        Сообщить(ОписаниеОшибки());
    КонецПопытки;

КонецЕсли;


Автор: AkelaSQL 21.1.2009, 11:06
Код

Если Объект.ТипБазы = Перечисления.ТипБазыРегистратора.MySQL Тогда

    ТекстЗапроса = "
        |Update
        |`arch_events`
        |set`mark` = 1
        |where ((`mark` = 0) or (`mark` is null))
        |and RIGHT(`getcardnumber`(`pkey_card`),8) = '" + КодКарты + "'
        |and CAST(DATE_FORMAT(`datetime_contr`, '%Y%m%d') AS CHAR(8)) = '" + ДатаСобытияСтрока + "'
        |";
                        
    Попытка
        Соединение.Execute(ТекстЗапроса); 
    Исключение
        Сообщить(ОписаниеОшибки());
    КонецПопытки;
КонецЕсли;


Добавлено через 10 минут и 44 секунды
Драйвер ODBC для мускула качать тут:
http://mysql.oss.eznetsols.org/Downloads/Connector-ODBC/3.51/

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)