Формирование строки соединения ADODB

Добрый день, При редактировании сервиса ADOConnection можно вызвать стандартное диалоговое окно для формирования строки соединения. Вопрос - есть ли в Террасофт функция для вызова этого окна из своего скрипта и получения сформированной пользователем строки соединения?

Нравится

5 комментариев

Добрый день, Валерий!

Такая функция в объектах Terrasoft наружу не вынесена. Она есть только в дизайнере ADOConnection. Но это не означает, что ее нельзя сделать. Её реализация очень простая. Смотрите пример реализации в прикрепленном Delphi проекте. Для использования созданного объекта достаточно зарегистрировать библиотеку как [font=monospace]regsvr32.exe ADOUtilsLibrary.dll[/font] в командной строке, и после этого в коде можно вызывать так:

function Main() {
	var Utils = new ActiveXObject('ADOUtilsLibrary.Utils');
	Log.Write(2, Utils.PromptDataSource(0, ''));
}

В качестве первого параметра передается дескриптор родительского окна. Его желательно взять из текущего окна из свойства Handle. Второй параметр - текущее значение строки соединения.

Спасибо, Сергей, все работает! :)

Здравствуйте!
Еще один вариант, без создания библиотеки:

function Main() {
	var dataLinks = new ActiveXObject('DataLinks');
	var ConnectionString = dataLinks.PromptNew();
	Connector.Log.Write(1, ConnectionString);
}

Спасибо, Александр,

Только видимо в данном случае PromptNew возвращает не строку соединения, а само подключение, то есть использовать следует так:

        var adoCon = Services.GetNewItemByUSI('MyADOConnection');
        var dataLinks = new ActiveXObject('DataLinks');
        var adoCon.ConnectionObject = dataLinks.PromptNew();
 
        // и для редактирования
        var dataLinks = new ActiveXObject('DataLinks');
        dataLinks.PromptEdit(adoCon.ConnectionObject); 

Спасибо, Валерий, что-то сразу не заметил...

Показать все комментарии