Профессия — 1С

Рукопашный бой Карташ

Категории

Работа с базами на MS SQL сервере с помощью программного интерфейса ADO

рубрики: 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 в качестве промежуточного звена это очень даже может пригодится.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

   

2018г. Профессия — 1С. Обмен опытом по программированию в 1С