наверх
✦ Примеры разработки на платформе 8.x

Алгоритмы подключения ADO

Как заполнить параметры подключения ADODB.Connection с помощью DataLinks?

Попытка
	Соединение = Новый COMОбъект("ADODB.Connection");
	ДатаЛ = Новый COMОбъект("DataLinks");
	ДатаЛ.PromptEdit(Соединение);
Исключение
	Предупреждение("Не удалось создать подключение!");
КонецПопытки;

Как получить строку подключения к базе SQL?

//Функция возвращает строку подключения к базе SQL
//Если в конфигурации присутствует справочник "Базы данных" и передана ссылка на элемент этого справочника, то строка подключения формируется из справочника
//иначе строка подключения формируется из строковых параметров функции
Функция  ВернутьСтрокуПодключения(БД=Неопределено,СерверБазыSQL="",ИмяБазыSQL="",ИмяПользователяSQL="",ПарольПользователяSQL="") Экспорт
	СтрокаПодключения = "Provider=SQLOLEDB.1;
	|Password="+СокрЛП(?(БД=Неопределено,ПарольПользователяSQL,БД.ПарольПользователяSQL))+";
	|User ID="+СокрЛП(?(БД=Неопределено,ИмяПользователяSQL,БД.ПользовательSQL))+";
	|Persist Security Info=True;
	|Initial Catalog="+СокрЛП(?(БД=Неопределено,ИмяБазыSQL,БД.ИмяБазыSQL))+";
	|Data Source="+СокрЛП(?(БД=Неопределено,СерверБазыSQL,БД.СерверБазыSQL));
	Возврат СтрокаПодключения;
КонецФункции

Как подключить объект ADODB.Connection?

//Получение объекта adoConnection
Функция  ВернутьAdoConnection(БазаДанных = Неопределено, СообщатьОбОшибках=Ложь)Экспорт
    Перем adoConnection,ПараметрБазаДанных;
	СообщениеОбОшибке = "";
	Запрос = Новый Запрос("
	|ВЫБРАТЬ ПЕРВЫЕ 1 РАЗРЕШЕННЫЕ
	|	БД.Ссылка,
	|	БД.ИмяБазыSQL,
	|	БД.СерверБазыSQL,
	|	БД.ПользовательSQL,
	|	БД.ПарольПользователяSQL
	|ИЗ Справочник.кбБазыДанных КАК БД
	|ГДЕ БД.Ссылка = &БД");
	Если БазаДанных = Неопределено Тогда 
		ПараметрБазаДанных  =  Константы.рТекущаяБД.Получить();
	Иначе
		ПараметрБазаДанных = БазаДанных;
	КонецЕсли;	
	Запрос.УстановитьПараметр("БД",ПараметрБазаДанных);

	Выборка = Запрос.Выполнить().Выбрать();
	Если Выборка.Следующий() Тогда
		Попытка
			adoConnection = Новый COMОбъект("ADODB.Connection");
			adoConnection.Open("Provider=SQLOLEDB;Data Source=" + СокрЛП(Выборка.СерверБазыSQL) + ";Initial Catalog=" + СокрЛП(Выборка.ИмяБазыSQL)
			+ ";User ID=" + СокрЛП(Выборка.ПользовательSQL) + ";Password=" + Выборка.Ссылка.ПолучитьОбъект().ПрочитатьПароль(Выборка.ПарольПользователяSQL)
			+ ";Persist Security Info=False;");
		Исключение 
			#Если Клиент Тогда
				Если СообщатьОбОшибках Тогда 
					Сообщить("Ошибка инициализации ADO!!!");
					Сообщить(ОписаниеОшибки());
				КонецЕсли;	
			#КонецЕсли	 	
		КонецПопытки;
	КонецЕсли;	
	
	Возврат adoConnection;		
КонецФункции

Как подключить объект ADODB.Command?

Функция ПолучитьADOCommand(БД) Экспорт
	Перем ADOCommand;
	СтрокаПодключения = ВернутьСтрокуПодключения(БД);
	Попытка
		Connection = Новый COMОбъект("ADODB.Connection");
		Connection.Open(СтрокаПодключения);
		
		ADOCommand = Новый COMОбъект("ADODB.Command");
		ADOCommand.ActiveConnection = Connection;
		ADOCommand.CommandTimeout = 300;
	Исключение
		ADOCommand = Неопределено;
		
		#ЕСЛИ КЛИЕНТ ТОГДА
			Ошибка = ОписаниеОшибки();
			Сообщить("Не удалось подключить ADO: " + Ошибка);
		#КОНЕЦЕСЛИ
	КонецПопытки;
	Возврат ADOCommand;
КонецФункции