Обработка предназначена для лёгкой и удобной работы с MySQL.
обновление: 27.03.2013
- Добавлена функция ОтправитьДанныеПоСтруктуреСДанными()
В случае, когда нужно передать сразу много таблиц, заполняется структура
ключ - имя таблицы
значение - сама таблица и передается в качестве параметра в функцию. - Для функции ОтправитьДанныеПоПодготовленнойТаблице() появился не обязательный параметр ИгнорироватьДубли.
Данный параметр позволяет подавлять ошибку вставки не уникальных строк (т.е. если в приемнике уже есть такая строка, то строка будет просто пропущена). Уникальность проверяется по ключевым полям (конструкция IGNORE).
обновлено: 21.12.2012
Существенно увеличена скорость получения больших таблиц с помощью функции ПолучитьТаблицуРезультатПоЗапросу()
обновлено: 12.12.2012
Исправлена мелкая ошибка:
Функция
__ОбновитьТаблицуКлючевыъПолей() - ошибочно отнесена к экпортным.
ОбновитьТаблицуКлючевыхПолей() - исправлено имя функции.
обновлено: 10.12.2012
Исправлено:
ошибка исполнения, если вызов функции работы с БД осуществлялся до вызова функции УстановитьПараметрыПодключения()
Добавлено:
1. СоздатьБД(ИмяБД)
2. ТестПодключения()
3. УдалитьБД(ИмяБД)
Возможности:
- Получение данных
- получить таблицу значений по запросу типа «select»
- Отправка данных таблицы значений
- отправка данных в таблицу MySQL по данным переданной таблицы значений
- Удаление данных
- удаление данных в таблице MySQL по данным переданной таблицы значений
- Вспомогательные возможности
- получить список баз сервера MySQL
- получить список таблиц базы MySQL
- получить список таблиц базы MySQL с размером таблицы и количеством строк
- получить структуру, содержащую все (или выборочно) таблицы базы MySQL
- Выполнение произвольного запроса
Для подключения в системе должен быть установлен ODBC драйвер.
Пример 1:
Дано:
Ip сервера = 10.0.0.1
База = mysql
Пользователь = root
Пароль = pass
Задача: Получить данные таблицы ‘proc’
обMySQLConnect = Обработки.MySQLConnect.Создать(); ПараметрыПодключения = новый Структура; ПараметрыПодключения.Вставить("Сервер" , "10.0.0.1"); ПараметрыПодключения.Вставить("Пользователь", "root"); ПараметрыПодключения.Вставить("Пароль" , "pass"); ПараметрыПодключения.Вставить("База" , "mysql"); обMySQLConnect.УстановитьПараметрыПодключения(ПараметрыПодключения); ТаблицаРезультат = новый таблицаЗначений; Запрос = "«SELECT * FROM proc»"; Если обMySQLConnect. ПолучитьТаблицуРезультатПоЗапросу(Запрос, ТаблицаРезультат) Тогда // ТаблицаРезультат содержит нужные данные - обрабатываем Иначе
Сообщить(обMySQLConnect. ПолучитьОписаниеОшибки ()); КонецЕсли;
Пример 2: Необходимо передать данные о ценах в таблицу "ShopPrices" на MySQL сервер.
Таблица ShopPrices содержит следующие поля: Shop_ip, Nom_id, Price.
Функция ПолучитьДанныеПоЦенам() ДанныеДляОтправки = новый ТаблицаЗначений; ДанныеДляОтправки.Колонки.Добавить("Shop_ip"); ДанныеДляОтправки.Колонки.Добавить("Nom_id"); ДанныеДляОтправки.Колонки.Добавить("Price"); НСтрока = ДанныеДляОтправки.Добавить(); НСтрока.Shop_ip = "1002"; НСтрока.Nom_id = "f0013"; НСтрока.Price = "1500"; НСтрока = ДанныеДляОтправки.Добавить(); НСтрока.Shop_ip = "1002"; НСтрока.Nom_id = "f0014"; НСтрока.Price = "950"; возврат ДанныеДляОтправки; КонецФункции Процедура ОтправитьДанные() ИмяТаблицы = "ShopPrices"; ДанныеДляОтправки = ПолучитьДанныеПоЦенам(); обMySQLConnect = Обработки.MySQLConnect.Создать(); ПараметрыПодключения = новый Структура; ПараметрыПодключения.Вставить("Сервер" , "10.0.0.1"); ПараметрыПодключения.Вставить("Пользователь", "root"); ПараметрыПодключения.Вставить("Пароль" , "pass"); ПараметрыПодключения.Вставить("База" , "mysql"); обMySQLConnect.УстановитьПараметрыПодключения(ПараметрыПодключения); Если Не обMySQLConnect.ОтправитьДанныеПоПодготовленнойТаблице(ДанныеОтправки, ИмяТаблицы) Тогда Сообщить(обMySQLConnect. ПолучитьОписаниеОшибки ()); КонецЕсли; КонецПроцедуры;
Функция "ОтправитьДанныеПоПодготовленнойТаблице" автоматически разбивает данные на порции по 1000 строк (параметр настраивается).
Более подробную информацию можно посмотреть в комментариях кода обработки.