2012-02-24 22 views
0

DB2データベースにフックしようとすると、 "無効な引数"という非常に説明的なエラーメッセージが表示されます。接続文字列が「jdbc:as400:// server; naming = system; errors = full; prompt = no」というJTopen JDBCドライバを使用してSQUirrel(およびJDBC)を使用して正常に接続できます。IBM.Data.DB2.DB2Connection .openメソッドの "Invalid Argument"例外メッセージ

jdbc私はそのDb2.netコネクタの問題を知っています。しかし、エラーメッセージ "Invalid Argument"はどこから始めるべきかを診断するためのあらゆる努力を挫折させます。 DB2.netコネクタのプログラムファイルディレクトリ内testconn20.exeを使用して

string connStr = "server=server;uid=user;pwd=password"; 
using(DB2Connection conn=new DB2Connection(connStr)) 
{ 
    conn.Open(); 
    //System.ArgumentException: Invalid argument 
    // at IBM.Data.DB2.DB2ConnPool.ReplaceConnectionStringParms(DB2Connection connection, String szValue, DB2ConnSettings& pSettings, DB2ConnSettingsInternal& pSettingsInternal, Boolean bAttach) 
    // at IBM.Data.DB2.DB2Connection.set_ConnectionString(String value) 
    // at IBM.Data.DB2.DB2Connection..ctor(String connectionString) 
    // at AuroraDAL_ConnectionTests.DB2ConnectionTests.try1() in C:\Projects\...\DB2ConnectionTests.cs:line 31 
    // at AuroraDAL_ConnectionTests.DB2ConnectionTests.Execute() in C:\Projects\...\DB2ConnectionTests.cs:line 19 
    // at AuroraDAL_ConnectionTests.Program.Main(String[] args) in C:\Projects\...\Program.cs:line 20 
} 

は、私は(uidはユーザーに変更し、その後、自分の手書き値に速記キーを変更するために、上記の最初の接続文字列を取って、いくつかのオプションを試してみました

Step 1: Printing version info 
     .NET Framework version: 2.0.50727.5448 
     64-bit 
     DB2 .NET provider version: 9.0.0.2 
     Capability bits: ALLDEFINED 
     Build: 20090522 
     Factory for invairant name IBM.Data.DB2 verified 
     Elapsed: 0.089982 

Step 2: Connecting using "server=-------;database=------;userid=------;password=------" 
Invalid Argument Exception: 
     Connection string should be of the type 'Database=db2db; Server=mymachine:60000; User ID=db2user; Password=xxxxxxxx 


Test failed. 

はwは誰もい:ID、PWDは、など)

testconn20 server=server;database=database;user id=userid;password=password 

その結果、最終的に同じ "無効な引数" 例外が返されたパスワードに変更しましたいくつかのDB2とC#は私が間違って何をしているかについて何か提案がありますか?前もって感謝します。

答えて

0

のサーバ=に私はDB2の経験を持っていませんが、あなたのコードを注意深く見ていることは、私はあなたがデータベースを指定していないことに気づい=とPortNumberの.netデータコネクタの最新かつ最高のビット。この問題は、徹底的に更新を探し、 "Fix Central"を見つけることによってほとんど解決されました。これは、アップデートやホットフィックスの保存場所です。しかし、適切なパッケージを手に入れることは容易ではありませんでした。

+0

これは正しい答えに終わりました...ロードされたDLLには修正されたバグがありました「Fix Pack 8」と呼ばれました。 – enorl76

1

IBMのサイトはへご案内doesntのように見えるあなたの接続文字列

+1

はい、それは実際のサーバー情報を難読化しようとしているためです。私がすでにかなり手に入れた「簡単な」もの。データベースが指定されていない状態でのJDBCドライバの動作 さらに、DB2は「特別な」サーバーであり、「データベース指定子」は不要です。このケースでは、1つのデータベースがサーバーです(しかし、私もDB2の初心者ですので、少し懐疑的です) – enorl76

関連する問題