有没有办法从 AX2012R2 获取到(外部)表的 ODBC 连接,而不在 ODBC 连接中使用 DSN?
它在 2009 年运行良好,类似于
systemInfo = SysSQLSystemInfo::construct();
loginProperty = new LoginProperty();
loginProperty.setServer(systemInfo.getLoginServer());
loginProperty.setDatabase(systemInfo.getloginDatabase());
conString = strFmt( 'Driver={SQL Server Native Client 10.0};'
+ 'Server=%1;'
+ 'Database=%2;'
, systemInfo.getLoginServer()
, systemInfo.getloginDatabase()
);
if ( <someFunctionToCheckForTrusedConnectin> )
{
conString += '"Trusted_Connection=Yes;"';
}
else
{
conString += strFmt( '"id=%1;'
+ 'pwd=%2;"'
, _userName
, _passWord
);
}
loginProperty.setOther( conString );
try
{
odbc = new OdbcConnection( loginProperty);
}
catch
{
throw error(#DatabaseConnectionError);
}
但它在 2012 年引发了错误:
Objekt 'OdbcConnection' konnte nicht erstellt werden.
[Microsoft][ODBC Driver Manager] Der Datenquellenname wurde nicht gefunden, und es wurde kein Standardtreiber angegeben
我已经用谷歌搜索了几个小时(可能是几天..),但还没有找到任何可行的例子。
编辑:
如果我修改以下两行代码
loginProperty.setServer(systemInfo.getLoginServer());
loginProperty.setDatabase(systemInfo.getloginDatabase());
并以纯文本形式输入服务器/数据库,乍一看似乎可以工作,但没关系,如果我输入了无效的用户名和/或密码。