Цитата:
Сообщение от
AndyD
Делайте серверный класс.
Настройки будут храниться и браться с него (с сервера).
Не обязательно весь класс делать со свойством RunOn = Server. Достаточно только объект ODBCConnection сформировать на стороне сервера. А это можно сделать, например, через создание статического метода в классе Global.
При этом вовсе не обязательно использовать предварительно созданный DSN в Windows. Можно формировать строку соединения динамически. Кстати, в этом случае не важно где (на клиенте или на сервере будет создаваться соединение). А дополнительные реквизиты для формирования строки соединения можно хранить в настроечных таблицах Axapta.
Вот пример для подключения к MS SQL - серверу по имени сервера и базы данных
X++:
//Создание ODBCConnection с внешней базой данных по отношению к текущей (другой сервер)
static server OdbcConnection createOdbcConnection(Name _server, Name _dataBase)
{
OdbcConnection connectBase;
LoginProperty lp = new LoginProperty();
str strConnectionString;
;
// Можно и в одну строку задать все параметры
// strConnectionString = strFmt("DRIVER=SQL Server;SERVER=%1;DataBase=%2;Trusted_Connection=Yes",_server,_dataBase);
// lp.setOther(strConnectionString);
// Но для определенности задаю те параметры, которые возможно, явным образом
lp.setDatabase(_dataBase);
lp.setServer(_server);
// Фигурные скобки не обязательны
lp.setOther("DRIVER={SQL Server};Trusted_Connection=Yes");
connectBase = new OdbcConnection(LP);
return connectBase;
}