2013-04-03 85 views
3

我有一个在批处理作业中使用的ODBC连接问题:执行时,我有以下错误信息:Dynamics AX的批处理作业

“的ODBC操作failed.Unable连接到数据库 无效的连接字符串属性Trusted_Connection Unabe创建对象“OdbcConnection”“

我尝试连接到Access数据库,我使用下面的代码:

LoginProperty     loginProperty; 
OdbcConnection    odbcConnection; 
; 
loginProperty = new LoginProperty(); 
loginProperty.setDSN("MyDSN"); 
loginProperty.setDatabase("MyDatabase"); 

odbcConnection = new OdbcConnection(loginProperty); 

调试时,它CR odbcConnection =新的OdbcConnection(loginProperty)上的灰烬。我在本地客户端执行的作业中测试了相同的代码,没有任何问题,并且工作正常(没有在代码或DSN中定义登录密码)。我的DSN在AOS上似乎没问题,我在没有SP1的情况下使用AX 2009,我看到一些示例,其中loginProperty对象中定义了登录名/密码,setUserName()和setPassword()方法在我的AX版本loginProperty中不可用目的。我的类在服务器端执行(与任何批处理作业一样)。

是否需要通过批处理作业连接到ODBC数据源的某些特定设置?

有什么想法或建议吗?

感谢您的帮助

编辑:AOS在Windows服务器上运行的2003 32位,ODBC就可以了测试,工作正常,但在AX通过批处理作业

回答

3

最有可能你需要不起作用AX的32位DSN连接。我会在AOS服务器上创建两个版本。

查看here了解详情。

1

它可能是由于权限造成的。 “可信连接”是指通过登录到当前会话的用户连接到数据库的事实。当您从AX客户端运行作业时,会与运行当前AX客户端的用户(登录到活动会话的用户)执行此操作;在批处理作业中从服务器执行代码时,通过运行AOS窗口服务用户执行代码。

已将此用户权限读取/写入/访问访问文件和目录?

1

如果您在64位机器上,请使用C:\ Windows \ SysWOW64 \ odbca32.exe来创建数据源。 检查AOS运行的是哪个ID,使用该ID登录并确保您可以“查看”数据源。 还要确保AOS帐户可以访问目录/文件(如果使用基于文件的odbc)