ADO. Работа с БД SQL. Внешние источники данных

07.04.2020 13:37:50   Вася Котов (freenet)    6829

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, ДопустимаяДлина.Переменная)));

Возврат ТЗ;

КонецФункции;

Категории:
 Программирование

Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. ToryKittony 04.02.21 17:23 Сейчас в теме
Спасибо, коротко, понятно, по теме
Для отправки сообщения требуется регистрация/авторизация
Ольга Колюкова. ИИ для аналитика 1С: как читать и править код без разработчика
Павел Ткаченко. Рефакторинг — не роскошь: как внедрить культуру улучшений в команде
Дмитрий Сидоренко. WebSocket'ы — это не больно
Алексей Куверзанов. Как сэкономить 200+ часов на настройке профилей групп доступа в 1С?
Дмитрий Сидоренко. Что ты сделал для Open Source в свои годы?
Ринат Зиганшин. Как написать свой первый плагин для 1C:EDT. Дорожная карта новичка
Николай Ермаков. Sage: встраиваем мониторинги в разработку 1С на примере Т-Банка
Вадим Фоминых. 1С без дирижера: как построить бизнес-процессы через Kafka и хореографию событий
Андрей Овсянкин. Запуск DevOps в 1С с точки зрения не техники, но людей и процессов
Дмитрий Абрамов. ИИ-сервисы как LEGO: из чего на самом деле состоит корпоративный ИИ