2011-07-18 30 views
1

AS/400のDB2データベースに数日間接続しようとしています! IBM System i Access for Windowsクライアントをインストールした後、ビジュアル・スタジオからODBCデータ・ソースを作成し、「テスト接続」をクリックすると成功します。ただし、単純なSELECT文を実行すると、データベースが応答しないようになるため、無限の待機になります。 私が接続してクエリするために使用しているコードは次のとおりです。DB2接続へのODBC接続からデータを取得できません

  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を使用していますが、エラーメッセージは表示されませんが、コードはその行の後に「待機」することはありません。あなたはなにか考えはありますか?事前に感謝します

+0

以下のURLで完全な説明を参照してください – KevinDTimm

答えて

0

私は問題が何であるか正確には分かりませんが、データリーダーを使用してより良い結果を得ることができますか?

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に精通していませんが、そのようなことがあるかどうかはわかりません)。あるいは、彼らが来たときにデータベースクエリを「見る」ことを可能にする「プロファイラ」がありますか?

クエリを表示しないので、非常に長時間実行されるクエリかどうか疑問に思っています。クエリが返されるのをどれくらい待ったのですか?接続文字列で1と

ジョン

+0

あなたの迅速な対応に感謝します。私の元のクエリはSELECT * FROM MYTABLEでした。MYTABLEは最近作成されたテーブルで、1行で埋められています。私は同じ結果(長い待っている)とあなたが投稿したコードを試したVisual Studioのサーバーエクスプローラを使用してこのデータベースを照会しようとしましたが、今回は実行が停止する行は "OdbcCommand com = new OdbcCommand(SQL 、接続、ヌル)) "。私はビジュアルスタジオのオプション "SQL構文を検証"をクリックすると、何か気づいたことがあります。 "このコマンドはこのプロバイダではサポートされていません"というエラーメッセージが表示されます – user769564

+0

このスレッドが見つかりました:http://groups.google.com/group/ ibm_db/browse_thread/thread/ed68b178cdbee4ea?pli = 1これは、DB Connectと呼ばれるものを構成する必要があることを示します。あなたはそれをしましたか? – JohnD

+0

DBConnectはdb2 iSeriesに接続するための代替ソフトウェアのようだと思います。私はAccess for Windowsを代わりにインストールしましたが、私はまだこの問題があるので試してみる必要があると思います。 – user769564

関連する問題