[AS/400]接続.NETドライバ「Ritmo/i」からCLコマンドを使用してストアドプロシージャを実行


AS/400用接続.NETドライバRitmo/i はストアドプロシージャの実行が可能で、分散プログラムは AS/400 で呼び出します。

1.特定の CALL 文を使用することで、AS/400 のコマンドや簡単な CL プログラムを実行することができます。

2.分散プログラム呼び出し機能を使用することで、入出力パラメータを必要とするプログラムを呼び出すことができます。

3.CALL 文を使用することで、ストアドプロシージャ、入出力パラメータ名称を呼び出して、リザルトセットを処理することができます。

Ritmo/i アプリケーションから AS/400 でのコマンドを実行するには、リモートコマンドを呼び出すための CALL 文を使用します。
実行する前にコマンドのストアドプロシージャを作成する必要はありません。

ライブラリ QSYS 内 の QCMDEXC にて、CALL 文は、CL コマンドを処理するプログラムを実行します。

QCMDEXC プログラムは二つの引数、10進数としてコマンドテキストの長さに続くコマンドのテキストを含む文字列を取ります。

例:
CALL QSYS.QCMDEXC(‘my command string’,000000000000017.00000)

以下は複数のリザルトセットを持つストアドプロシージャを呼び出す方法の例です。

Sql400Connection myConnection = new Sql400Connection(“data source=as400..xml;”);
myConnection.Open();

// SP_RS2() はサンプルストアドプロシージャのリザルトセット2つを返します。
Sql400Command myCommand = new Sql400Command(“CALL ANDREAC.SP_RS2()”,myConnection);
Sql400DataReader myReader = myCommand.ExecuteReader();

do
{
while (myReader.Read())
{
// ここに処理を記述
}

} while (myReader.NextResult());

myReader.Close();
myCommand.Dispose();
myConnection.Close();

※CLコマンドを使用してストアドプロシージャを実行する機能は、Ritmo/iの他、AS/400以外のDB2接続ドライバ「Ritmo/DB2」や「HiT ODBC」「HiT JDBC」「HiT OLE DB」の各ドライバでも可能です。

関連したトピックス