Добрый день, При редактировании сервиса ADOConnection можно вызвать стандартное диалоговое окно для формирования строки соединения. Вопрос - есть ли в Террасофт функция для вызова этого окна из своего скрипта и получения сформированной пользователем строки соединения?
Такая функция в объектах 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);