helpf.pro
Регистрация
 0 
Распечатать

1С 8.2 УП : Работа с MySQL из 1С через ODBC

В статье описан процесс работы с MySQL базой из 1С через ODBC.

Первое что следует обязательно учесть это версия драйвера, для того чтобы всё корректно работало вам потребуется драйвер версии 3.51 (с драйвером 5-ой версии я пробился пол дня пытаясь хоть чего нибудь добиться, безрезультатно & поменял на предыдущую версию и всё заработало!

Для подключения используем вот такую строчку:

Код 1C v 8.х
 Соединение = "DRIVER=MySQL ODBC 3.51 Driver;Database=inventar_sm;DataSource=roman-book;UID=root;PWD=240580;STMT=set character_set_results=cp1251;"; 
//Это если задаём кодировку соединения (лучше задать);
Соединение = "DRIVER=MySQL ODBC 3.51 Driver;Database=inventar_sm;DataSource=roman-book;UID=root;PWD=240580;";
//Это без задания кодировки.

то касается кодировки то лучше её конечно задать, но на вставку записей в БД MySQL оно почемуто не влияет, и чтобы корректно всё отрабатывало и не выглядело кракозябриками после отработки скриптов, перед выполнением самих скриптов лучше выполнить вот такой вот скрипт «set names cp1251» в рамках соединения он правильно установит кодировку (так надёжнее).

Для работы с самой базой объявляем объект ADODB.Connection & это соединение с базой.

Для работы с данными можем объявить: ADODB.Recordset & для чтения данных, и ADODB.Command для изменения.

(ADODB.Command & не имеет метода ExecuteScalar, поэтому вместо него придётся обходиться Recordset-ом и с его помощью выбирать данные, хотя возможно я чегото не доглядел).

Итак пример. Выбираем данные из таблицы:

Код 1C v 8.х
 Попытка
Connection = Новый COMОбъект("ADODB.Connection"); 
Connection.Open("DRIVER=MySQL ODBC 3.51 Driver;Database=inventar_sm;DataSource=roman-book;UID=root;PWD=240580;STMT=set character_set_results=cp1251;");


RS = Новый COMОбъект("ADODB.Recordset"); 
RS.CursorType=3;
// Запрос к базе на языке SQL запросов.
RS.ActiveConnection=Connection;
RS.Open("select * from market_users");
//Перемещаем указатель на первую запись.
RS.MoveFirst(); 
Пока RS.EOF()=0 Цикл
    // Обрабатываем значения полей выборки.
    NAM = RS.Fields("NAME").Value;
    Сообщить(NAM);
    // Перемещаем указатель.
    RS.MoveNext();    
КонецЦикла;    
//Закрываем соединения.
RS.Close();
Connection.Close();

Теперь изменяем данные:

Код 1C v 8.х
 Connection = Новый COMОбъект("ADODB.Connection"); 
Connection.Open("DRIVER=MySQL ODBC 3.51 Driver;Database=inventar_sm;DataSource=roman-book;UID=root;PWD=240580;STMT=set character_set_results=cp1251;");


//Устанавливаем кодировку для нашего подключения (дополнительно)...
Command= new COMObject("ADODB.Command"); 
Command.CommandText = "set names cp1251";
Command.ActiveConnection = Connection;
Command.CommandType = 1;
Command.Execute();


//Теперь выполняем скрипт
Command= new COMObject("ADODB.Command"); 
Command.CommandText = "update market_cards set name='Хлебушек бородинский' where articul='123'";
Command.ActiveConnection = Connection;
Command.CommandType = 1;
Command.Execute();


//Закрываем соединение.
Connection.Close();

Все )

Разместил:   Версии: | 8.x | 8.2 УП | 8.3 |  Дата:   Прочитано: 3828
 0 
Распечатать
Возможно, вас также заинтересует
1C и Google Maps 12
была поставлена задача отображения на географической карте медицинских учреждений. После обзора предлагаемых решений был выбран сервис google. Но так же подобного рода подход будет работать и с картами сервиса yandex. Во...
1С Предприятие что это? 6
Что такое 1С? 1С — это фирма , у которой одно из направлений деятельности — разработка программного обеспечения для автоматизации бизнес-процессов предприятий. « 1С:Предприятие » - конкретный продукт, который...
COM-подключение к базе 7.7 из 8.2 1С 4
Если код выполняется на стороне клиента, то необходимо наличие базы 7.7 на локальной машине. Пример (На форме объекта присутствует реквизит Таблица(ТаблицаЗначений)): НаКлиенте Процедура Загрузки() ПутьКБазе="...
Cодержимое указанного ниже веб-сайта в этом приложении блокируется... Aboutsecurity_1cv8c.exe 0
Проблема: После обновления на 1С:Бухгалтерию предприятия 3-й версии, при нажатии на закладку командного интерфейса 1С:предприятие, выскакивает ошибка: Aboutsecurity_1cv8c.exe или Aboutsecurity_1cv8.exe «Содержимое указанного ниже...
Microsoft SQL Server Native Client Добавление значения в столбец "datetime" привело к переполнению 0
При формировании отчета на СКД получили ошибку: Microsoft SQL Server Native Client 11.0: Добавление значения в столбец "datetime" привело к переполнению Подробнее текст такой: ... по причине: Ошибка компоновки данных по причине: Ошибка...
Посмотреть все результаты поиска похожих
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.