2

AS400上のファイルに対して基本的なSQL(この場合は挿入)を実行する必要があります。Windows 2008で実行されているC#でシッククライアントのコマンドラインアプリを作成しています。

ライブラリとファイルを次のように指定した場合:

insert into somelibrary.somefile (col1,col2) values val1,val2

その後、それは動作します。問題は、の値がsomelibraryユーザーと環境によって異なることです。ライブラリリスト*LIBLを使用して、ユーザーが割り当てられているすべてのライブラリを正しい順序で取得できるようにします。可能であれば、構成ファイルを使用する必要はありません。

私がテストしているユーザーのライブラリリストには、を含むライブラリがありますsomefile。私が試してみると:

insert into somefile (col1,col2...) values val1,val2

エラーが発生します:

ERROR [42S02] [IBM][System i Access ODBC Driver][DB2 for i5/OS]SQL0204 - somefile in username type *FILE not found.

SQLと接続文字列に*LIBLを追加しようとしましたが、ファイルが見つかりません。ライブラリとファイルを区切るためにスラッシュを使用するだけでなく、かなりの数の組み合わせを試しました。

関連する場合、接続文字列は次のとおりです。

Driver={Client Access ODBC Driver (32-bit)}; System=" + server + "; UID=" + DBUser + "; PWD=" + DBPassword + ";";
4

1 に答える 1

1

この要求に使用されるライブラリリストは、認証に使用されるユーザープロファイルのライブラリリストです。ユーザープロファイルは、ライブラリリストに関して興味深い2つの項目、つまり職務記述書と初期プログラムを指しています。ライブラリリストが何であるかを確認するには、ジョブの説明を確認してください。おそらく、SOMEFILEを含むライブラリはありません。それは最初のプログラムを残します。ライブラリリストが初期プログラムで設定されている場合、プロファイルがターミナルセッションにサインオンしたときにのみ初期プログラムが実行されるため、問題が発生します。

これを回避する方法は、必要なライブラリリストを含むユーザープロファイルとジョブの説明を作成することです。

于 2013-01-22T15:54:32.220 に答える