簡體   English   中英

無法從 ODBC 連接到 DB2 iSeries 檢索數據

[英]Can not retrieve data from a ODBC connection to DB2 iSeries

幾天來,我一直在嘗試連接到 AS/400 上的 DB2 數據庫。 在我為 Windows 客戶端安裝 IBM System i Access 之后,我可以從 Visual Studio 創建一個 ODBC 數據源,當我單擊“測試連接”時,它是成功的,但是。 執行一個簡單的 SELECT 語句會導致無限等待,因為數據庫似乎沒有響應它:我用來連接和查詢的代碼是:

            OdbcConnection conn = new OdbcConnection(@"Dsn=TEST1;Uid=myuser;Pwd=mypwd;DBQ=mydb2");
            conn.Open(); 

            try
            {
                string cmmTxt = query;
                OdbcCommand cmd = new OdbcCommand(cmmTxt, conn);
                OdbcDataAdapter da = new OdbcDataAdapter(cmd);
                da.Fill(dset);
            }
            catch (Exception e)
            {
                Console.Write(e.StackTrace);
            }
            finally
            {
                conn.Close();
            }

執行停止響應的行是“da.Fill(dset);”。 順便說一句,我正在使用 Visual Studio 2010,我沒有看到任何錯誤消息,但代碼在該行之后永遠不會完成“等待”。 你有什么想法? 提前致謝

在連接字符串中將 LONGDATACOMPAT 標志設置為 1 對我有用。

[C#]
OdbcConnection con =
  new OdbcConnection("DSN=SAMPLE;UID=uid;PWD=mypwd;
  LONGDATACOMPAT=1;");

請參閱下面 URL 中的完整說明

http://pic.dhe.ibm.com/infocenter/db2luw/v9r7/index.jsp?topic=%2Fcom.ibm.swg.im.dbclient.adonet.doc%2Fdoc%2Fr0011829.html

我不確定到底是什么問題,但您可以嘗試使用數據閱讀器,看看是否能給您帶來更好的結果嗎?

OdbcConnection conn = new OdbcConnection(@"Dsn=TEST1;Uid=myuser;Pwd=mypwd;DBQ=mydb2");
string SQL = "SELECT COUNT(*) FROM MyTable";
using (OdbcCommand com = new OdbcCommand(SQL, connection, null))
{
    using (OdbcDataReader reader = com.ExecuteReader())
    {
        while (reader.Read())
        {
            var value = reader["MyColumn"];
        }
    }
}

其次,您確定您的查詢會在合理的時間內返回嗎? 您是否有一些工具可以讓您直接對數據庫運行查詢(我不熟悉 DB2,不確定是否有這樣的事情)。 或者是否有一個“分析器”可以讓您在數據庫查詢進入時“窺視”它們?

由於您沒有顯示您的查詢,我想知道它是否是一個運行時間很長的查詢。 您等待查詢返回多長時間?

約翰

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM