ADO. Работа с БД SQL. Внешние источники данных
1. Подключение к БД SQL через ADO
2. Выборка полученных данных
3. Использование прямого запроса для создания внешнего источника данных
Сервер SQL имеет отличный от 1С формат даты, поэтому используем это:
format(dateadd(YYYY, -2000, place._Period), 'dd.MM.yyyy hh:mm:ss') AS _Period
Обратное преобразование даты, для передачи параметра в запрос:
DECLARE @datetime datetime2(0) = dateadd(YYYY, 2000, '31.12.2018 12:32:03');
Шаблон: https://bitbucket.org/snippets/ayvas/8np994/sql-ado
Функция ДанныеADO() Экспорт
strConnect = "DRIVER={SQL Server Native Client 11.0};SERVER=;UID=;PWD=;DATABASE=;Trusted_Connection=yes;LANGUAGE=русский";
Connect = Новый COMОбъект("ADODB.Connection");
Попытка
Connect.Open(strConnect);
Исключение
ОписаниеОшибки = "ошибка подключения "+ОписаниеОшибки();
Возврат ОписаниеОшибки;
КонецПопытки;
ТекстЗапроса = "";
Попытка
RS = Connect.Execute(ТекстЗапроса);
Исключение
Возврат "Ошибка запроса : "+ОписаниеОшибки();
КонецПопытки;
Данные = ТЗ();
Пока НЕ RS.EOF Цикл
СтрокаДанных = Данные.Добавить();
Для каждого Колонка Из Данные.Колонки Цикл
СтрокаДанных[Колонка.Имя] = СокрЛП(RS.Fields(Колонка.Имя).value)
КонецЦикла;
RS.MoveNext();
КонецЦикла;
Возврат Данные;
КонецФункции // ()
Функция ТЗ()
ТЗ = Новый ТаблицаЗначений;
ТЗ.Колонки.Добавить("_Period", Новый ОписаниеТипов("Дата", , ,
Новый КвалификаторыДаты(ЧастиДаты.ДатаВремя)));
ТЗ.Колонки.Добавить("os", Новый ОписаниеТипов("Строка", ,
Новый КвалификаторыСтроки(100, ДопустимаяДлина.Переменная)));
Возврат ТЗ;
КонецФункции;
2. Выборка полученных данных
3. Использование прямого запроса для создания внешнего источника данных
Сервер SQL имеет отличный от 1С формат даты, поэтому используем это:
format(dateadd(YYYY, -2000, place._Period), 'dd.MM.yyyy hh:mm:ss') AS _Period
Обратное преобразование даты, для передачи параметра в запрос:
DECLARE @datetime datetime2(0) = dateadd(YYYY, 2000, '31.12.2018 12:32:03');
Шаблон: https://bitbucket.org/snippets/ayvas/8np994/sql-ado
Функция ДанныеADO() Экспорт
strConnect = "DRIVER={SQL Server Native Client 11.0};SERVER=;UID=;PWD=;DATABASE=;Trusted_Connection=yes;LANGUAGE=русский";
Connect = Новый COMОбъект("ADODB.Connection");
Попытка
Connect.Open(strConnect);
Исключение
ОписаниеОшибки = "ошибка подключения "+ОписаниеОшибки();
Возврат ОписаниеОшибки;
КонецПопытки;
ТекстЗапроса = "";
Попытка
RS = Connect.Execute(ТекстЗапроса);
Исключение
Возврат "Ошибка запроса : "+ОписаниеОшибки();
КонецПопытки;
Данные = ТЗ();
Пока НЕ RS.EOF Цикл
СтрокаДанных = Данные.Добавить();
Для каждого Колонка Из Данные.Колонки Цикл
СтрокаДанных[Колонка.Имя] = СокрЛП(RS.Fields(Колонка.Имя).value)
КонецЦикла;
RS.MoveNext();
КонецЦикла;
Возврат Данные;
КонецФункции // ()
Функция ТЗ()
ТЗ = Новый ТаблицаЗначений;
ТЗ.Колонки.Добавить("_Period", Новый ОписаниеТипов("Дата", , ,
Новый КвалификаторыДаты(ЧастиДаты.ДатаВремя)));
ТЗ.Колонки.Добавить("os", Новый ОписаниеТипов("Строка", ,
Новый КвалификаторыСтроки(100, ДопустимаяДлина.Переменная)));
Возврат ТЗ;
КонецФункции;
Комментарии
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Прямая ссылка:
BB-код для форумов и блогов:
HTML-код:
BB-код для форумов и блогов:
HTML-код: