2010-09-15 55 views
1

我最近在Fedora Linux系統上安裝了Mono,以便我們能夠在其上運行ASP.NET應用程序。我能夠啓動和運行這個部分,但問題是我們使用Informix DB,Mono似乎阻止了ODBC的工作。連接到安裝了單聲道的Informix DB時發生ODBC錯誤

有沒有人獲得ODBC連接到安裝了Mono的Informix DB的經驗?

我們:

  • IBM Informix的ESQL版本3.50.UC7
  • 的unixODBC 2.2.14
  • Informix的SE版7.25.UC6R1
  • 單聲道版本2.6.7。
  • CSDK版本是 「IBM的Informix CSDK版本3.50,IBM Informix的ESQL版本3.50.UC7」

任何幫助將不勝感激。

這裏是完整的跟蹤:


ppid=00003564,pid=00000000   ENTER SQLSetEnvAttr 
     SQLHENV  0x087489C8 
     SQLINTEGER 200 
     SQLPOINTER 0x00000003 
     SQLINTEGER 0 

ppid=00003564,pid=00000000   EXIT SQLSetEnvAttr 
     SQLHENV  0x087489C8 
     SQLINTEGER 200 
     SQLPOINTER 0x00000003 
     SQLINTEGER 0 with return code 0 (SQL_SUCCESS) 

ppid=00003564,pid=00000000   ENTER SQLGetEnvAttr 
     SQLHENV  0x087489C8 
     SQLINTEGER 200 
     SQLPOINTER 0xBFBF84F0 
     SQLINTEGER 0 
     SQLINTEGER * 0x04D05CA0 

ppid=00003564,pid=00000000   EXIT SQLGetEnvAttr 
     SQLHENV  0x087489C8 
     SQLINTEGER 200 
     SQLPOINTER 0xBFBF84F0 
     SQLINTEGER 0 
     SQLINTEGER * 0x04D05CA0 with return code 0 (SQL_SUCCESS) 

ppid=00003564,pid=00000000   ENTER SQLAllocHandle 
     SQLSMALLINT   2 
     SQLHANDLE  0x087489c8 
     SQLHANDLE *  0x0874c4c8 

ppid=00003564,pid=00000000   EXIT SQLAllocHandle 
     SQLSMALLINT   2 
     SQLHANDLE  0x087489c8 
     SQLHANDLE *  0x0874c4c8 with return code 0 (SQL_SUCCESS) 

ppid=00003564,pid=00000000   ENTER SQLSetConnectAttrW 
     SQLHDBC  0x08758F88 
     SQLINTEGER 115 
     SQLPOINTER 0x04D05CA0 
     SQLINTEGER 0 
     SQLINTEGER * 0x00000000 

ppid=00003564,pid=00000000   EXIT SQLSetConnectAttrW 
     SQLHDBC  0x08758F88 
     SQLINTEGER 115 
     SQLPOINTER 0x04D05CA0 
     SQLINTEGER 0 
     SQLINTEGER * 0x00000000 with return code -1 (SQL_ERROR) 

ppid=00003564,pid=00000000   ENTER SQLConnectW 
     SQLHDBC   0x08758F88 
     SQLWCHAR  i 
     SQLSMALLINT  -3 
     SQLWCHAR *  ***** 
     SQLSMALLINT  -3 
     SQLWCHAR *  ***** 
     SQLSMALLINT  -3 
ppid=00003564,pid=00000000   EXIT SQLConnectW 
     SQLHDBC   0x08758F88 
     SQLWCHAR  i 
     SQLSMALLINT  -3 
     SQLWCHAR *  ***** 
     SQLSMALLINT  -3 
     SQLWCHAR *  ***** 
     SQLSMALLINT  -3 with return code -1 (SQL_ERROR) 

ppid=00003564,pid=00000000   ENTER SQLGetDiagRecW 
     ,SQLSMALLINT  2 
     SQLHANDLE  0x08758F88 
     SQLSMALLINT  1 
     SQLWCHAR *  ^R 
     SQLINTEGER * 0xBFBF96E0 
     SQLWCHAR *  ~B 
     SQLSMALLINT  1026 
     SQLSMALLINT * 0xBFBF96EA 

ppid=00003564,pid=00000000   EXIT SQLGetDiagRecW 
     ,SQLSMALLINT  2 
     SQLHANDLE  0x08758F88 
     SQLSMALLINT  1 
     SQLWCHAR *  I 
     SQLINTEGER * 0xBFBF96E0 
     SQLWCHAR *  [ 
     SQLSMALLINT  1026 
     SQLSMALLINT * 0xBFBF96EA with return code 0 (SQL_SUCCESS) 

ppid=00003564,pid=00000000   ENTER SQLGetDiagRecW 
     ,SQLSMALLINT  2 
     SQLHANDLE  0x08758F88 
     SQLSMALLINT  2 
     SQLWCHAR *  I 
     SQLINTEGER * 0xBFBF96E0 
     SQLWCHAR *  [ 
     SQLSMALLINT  1026 
     SQLSMALLINT * 0xBFBF96EA 

ppid=00003564,pid=00000000   EXIT SQLGetDiagRecW 
     ,SQLSMALLINT  2 
     SQLHANDLE  0x08758F88 
     SQLSMALLINT  2 
     SQLWCHAR *  I 
     SQLINTEGER * 0xBFBF96E0 
     SQLWCHAR *  [ 
     SQLSMALLINT  1026 
     SQLSMALLINT * 0xBFBF96EA with return code 100 (SQL_NO_DATA_FOUND) 

ppid=00003564,pid=00000000   ENTER SQLFreeHandle 
     SQLSMALLINT   2 
     SQLHANDLE  0x08758f88 

ppid=00003564,pid=00000000   EXIT SQLFreeHandle 
     SQLSMALLINT   2 
     SQLHANDLE  0x00000000 with return code 0 (SQL_SUCCESS) 

ppid=00003564,pid=00000000   ENTER SQLFreeHandle 
     SQLSMALLINT   1 
     SQLHANDLE  0x087489c8 

ppid=00003564,pid=00000000   EXIT SQLFreeHandle 
     SQLSMALLINT   1 
     SQLHANDLE  0x00000000 with return code 0 (SQL_SUCCESS) 

當我跑了單外的連接是非常相似的,除了EXIT SQLConnectW-3 with return code 0 (SQL_SUCCESS)

+0

您是否嘗試過從其他ODBC工具(如unixODBC)連接Informix?莫諾表現出什麼錯誤? – 2010-09-15 12:17:26

+0

您使用的是哪個版本的Informix ODBC驅動程序?或者您使用的是哪個版本的Informix CSDK?我在一個稍微老一點的ODBC版本的Mono環境中遇到了Unicode轉換問題;它已在最新版本的ODBC中修復。但我不得不查找錯誤號碼等。 – 2010-09-15 18:55:29

+0

嗨,感謝您的回覆。我們正在運行unixODBC 2.2.14和它的Informix SE版本7.25.UC6R1。我們安裝了Mono 2.6.7版。 – Frankied 2010-09-16 07:50:42

回答

1

當你有問題,只能用單聲道就可以嘗試追蹤它。啓用ODBC跟蹤(一旦我在Linux上遇到問題,但在Informix文檔中出現錯誤,請參閱:Tracing ODBC calls for Informix Client for Linux)。

isql跟蹤Informix客戶端並保存跟蹤文件,然後從Mono跟蹤並比較兩個跟蹤。在單聲道追蹤應該是更多的信息發生了什麼事。

Jonathan要求您檢查您是否使用最新的CSDK庫,向我們顯示您的驅動程序版本。也許你使用Jonathan正在討論的Unicode錯誤的舊驅動程序,你應該升級驅動程序?

+0

嗨,感謝您回覆,CSK verion是「IBM Informix CSDK版本3.50,IBM Informix-ESQL版本3.50.UC7」。 – Frankied 2010-09-20 10:58:09