2013-04-03 107 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)