наверх
Свободные IT публикации
логин:
пароль:

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

  • Как заполнить параметры подключения ADODB.Connection с помощью DataLinks?
  • Как получить строку подключения к базе SQL?
  • Как подключить объект ADODB.Connection?
  • Как подключить объект ADODB.Command?
  • Как заполнить параметры подключения 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;
    КонецФункции