Привет всем.
Давеча поразбирался с программным доступом из DAX к другим базам SQL.
Получается вот такая картина. Если раньше (имеется в виду в версии 3,0) можно было передавать имя пользователя и пароль, то теперь ситуация (в новой версии DAX) поменялась и необходимо настраивать DSN. Используемый класс LoginProperty по количеству методов не претерпел изменений, но использовавшиеся методы setUsername и setPassword присутствуют только для обратной совместимости, а применение их приводит к ошибке.
Вот макро tutorial для реализации подобной задачи.
X++:
static void SqlAccess(Args _args)
{
Statement st;
OdbcConnection OdbcCon;
ResultSet resultSet;
str ServerName = "ultra";;
str DatabaseName = "AdventureWorks";
str User;
str Password;
str str_st;
LoginProperty LP = new LoginProperty();
;
//User = "bmssa"; //раньше было так
//Password ="bmssa";
LP.setDSN('ultra');//необходимо доп настраивать
LP.setDatabase(DatabaseName);
LP.setServer(ServerName);
//LP.setUsername(User);//уже не работает
//LP.setPassword(Password);
OdbcCon = new OdbcConnection(LP);
st = OdbcCon.createStatement();
str_st ="select * from sales.SalesPerson"; //строка отправляемого запроса
resultSet = st.executeQuery(str_st);
while (resultSet.next())
{
info(any2str(resultSet.getString(4))); //получение данных из 4 столбца
}
}