рубрики: ADO | Дата: 28 января, 2014
Для начала установим соединение с базой данных SQL.
Формируем строку подключения
"Provider=SQLOLEDB.1;Password=""123"";Persist Security Info=True;User ID=""Vasya"";Initial Catalog=""Base1"";Data Source=""SQLserver""";
Параметры подключения:
Provider — это имя провайдера. для различных версий MS SQL может различаться;
Persist Security Info разрешает или запрещает получение данных из строки подключения;
User ID — имя пользователя SQL сервера;
Initial Catalog — имя базы на SQL сервере;
Data Source — Имя SQL сервера;
Создаем COM объект подключения к базе:
ADOСоединение = Новый COMОбъект("ADODB.Connection");
ADOСоединение.ConnectionString = ConnectionString;
ADOСоединение.CommandTimeout = 2400;
Пытаемся подключиться
Попытка
ADOСоединение.Open();
Исключение
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "Не удалось установить соединение с базой данных" + ОписаниеОшибки();
Сообщение.Сообщить();
КонецПопытки;
Создаем объект Command c помощью которого сможем выполнять команды и запросы на SQL сервере
Command = Новый ComObject("ADODB.Command");
Command.ActiveConnection = ADOСоединение;
Command.CommandType = 1;
И теперь можно производить с базой данных определенные действия, используя синтаксис языка Trasact SQL. Рассмотрим самые распространенные.
Запишем в свойство CommandText текст запроса
Command.CommandText = "SELECT * FROM Table1";
здесь мы выбираем значения всех полей из таблицы Table1.
Далее выполняем запрос и в цикле обходим выборку (все почти как в 1С)
Попытка
Выборка = Command.Execute();
Исключение
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "Не удалось выполнить запрос" + ОписаниеОшибки();
Сообщение.Сообщить();
КонецПопытки;
Пока НЕ Выборка.EOF() Цикл
Сообщить(Выборка.Fields(0).Value);
Выборка.MoveNext();
КонецЦикла;
Выборка.Close();
В отличие от запросов 1С в SQL с помощью запроса можно не только читать данные, но и удалять их.
Command.CommandText = "DELETE FROM Table1";
Command.Execute();
В результате у нас будут удалены все записи из таблицы Table1
Допустим что в таблице Table1 у нас есть поля Period и Summa. Добавим в таблицу запись со значением этих полей 01.01.2014 и 10000 соответственно
Command.CommandText = "INSERT INTO Table1 (Period, Summa) VALUES ('2014-01-01', 10000)";
Command.Execute();
Здесь была рассмотрена только небольшая часть возможностей по работе с SQL. Диапазон возможностей гораздо шире. В частности можно программно создавать и удалять таблицы. Стоит заметить, что не стоит пытаться напрямую редактировать таблицы SQL, которые использует 1С. А вот для интеграции с другими приложениями с использованием SQL в качестве промежуточного звена это очень даже может пригодится.
Добавить комментарий