Добрый день, При редактировании сервиса ADOConnection можно вызвать стандартное диалоговое окно для формирования строки соединения. Вопрос - есть ли в Террасофт функция для вызова этого окна из своего скрипта и получения сформированной пользователем строки соединения?
Нравится
Добрый день, Валерий!
Такая функция в объектах Terrasoft наружу не вынесена. Она есть только в дизайнере ADOConnection. Но это не означает, что ее нельзя сделать. Её реализация очень простая. Смотрите пример реализации в прикрепленном Delphi проекте. Для использования созданного объекта достаточно зарегистрировать библиотеку как [font=monospace]regsvr32.exe ADOUtilsLibrary.dll[/font] в командной строке, и после этого в коде можно вызывать так:
[javascript]
function Main() {
var Utils = new ActiveXObject('ADOUtilsLibrary.Utils');
Log.Write(2, Utils.PromptDataSource(0, ''));
}
[/javascript]
В качестве первого параметра передается дескриптор родительского окна. Его желательно взять из текущего окна из свойства Handle. Второй параметр - текущее значение строки соединения.
Здравствуйте!
Еще один вариант, без создания библиотеки:
[javascript]
function Main() {
var dataLinks = new ActiveXObject('DataLinks');
var ConnectionString = dataLinks.PromptNew();
Connector.Log.Write(1, ConnectionString);
}
[/javascript]
Спасибо, Александр,
Только видимо в данном случае PromptNew возвращает не строку соединения, а само подключение, то есть использовать следует так:
[javascript]
var adoCon = Services.GetNewItemByUSI('MyADOConnection');
var dataLinks = new ActiveXObject('DataLinks');
var adoCon.ConnectionObject = dataLinks.PromptNew();
// и для редактирования
var dataLinks = new ActiveXObject('DataLinks');
dataLinks.PromptEdit(adoCon.ConnectionObject);
[/javascript]