Axapta 通过ODBC实现动态AX批处理作业
批处理作业中使用的ODBC连接有问题:执行时,出现以下错误消息: “ODBC操作失败。无法连接到数据库 无效的连接字符串属性受信任的\u连接 无法创建对象“OdbcConnection” 我尝试连接到Access数据库,我使用以下代码:Axapta 通过ODBC实现动态AX批处理作业,axapta,batch-processing,dynamics-ax-2009,x++,Axapta,Batch Processing,Dynamics Ax 2009,X++,批处理作业中使用的ODBC连接有问题:执行时,出现以下错误消息: “ODBC操作失败。无法连接到数据库 无效的连接字符串属性受信任的\u连接 无法创建对象“OdbcConnection” 我尝试连接到Access数据库,我使用以下代码: LoginProperty loginProperty; OdbcConnection odbcConnection; ; loginProperty = new LoginProperty(); l
LoginProperty loginProperty;
OdbcConnection odbcConnection;
;
loginProperty = new LoginProperty();
loginProperty.setDSN("MyDSN");
loginProperty.setDatabase("MyDatabase");
odbcConnection = new OdbcConnection(loginProperty);
调试时,它在odbcConnection=new odbcConnection(loginProperty)时崩溃。我在本地客户端执行的一个作业中测试了相同的代码,没有问题,而且工作正常(没有在代码或DSN中定义登录密码)。我的DSN在AOS上似乎没有问题,我使用的是没有SP1的AX 2009,我看到一些示例,其中loginProperty对象中定义了登录/密码,setUserName()和setPassword()方法在我的AX版本loginProperty对象中不可用。我的类在服务器端执行(与任何批处理作业一样)
要通过批处理作业连接到ODBC数据源,是否需要进行一些特定的设置
有什么想法或建议吗
谢谢你的帮助
编辑:AOS在Windows server 2003 32位上运行,ODBC在其上测试,工作正常,但通过批处理作业无法在AX中工作。很可能您的AX需要32位DSN连接。我将在AOS服务器上创建这两个版本
查看详细信息。这可能是由于许可造成的。“可信连接”是指您通过登录到当前会话的用户连接到数据库。从AX客户端运行作业时,将与运行当前AX客户端(登录到活动会话的用户)的用户一起执行作业;在批处理作业中从服务器执行代码时,代码通过运行AOS windows服务的用户执行
此用户是否具有读取/写入/访问访问文件和目录的权限?如果您在64位计算机上,请使用C:\Windows\SysWOW64\odbca32.exe创建数据源。 检查AOS运行的ID,使用该ID登录,确保您可以“查看”数据源。 还要确保AOS帐户可以访问目录/文件(如果使用基于文件的odbc)