2012-05-11 43 views
1

AS400の新機能です。私はドキュメントを読んだが、私が必要なものを見つけることができない。 私はAS400サーバーへのODBC接続を持っています。代わりに、私は、ODBC経由で接続している私のスクリプトには、このコマンドの結果を受信する必要がOUTFILEに行く結果のODBC接続を使用したiSeries(AS400)出力

CALL QSYS.QCMDEXC('DSPUSRPRF USRPRF(*ALL) OUTPUT(*OUTFILE) OUTFILE(CHHFLE/TEST3)', 0000000061.00000) 

:私は、このコマンドを実行すると、私は必要なすべてをOUTFILEを取得します。 'OUTPUT(* OUTFILE)'を 'OUTPUT(*)'に変更すると、 'fetchall()'しようとすると結果が得られません。 スクリプトへのodbc接続を通じてこの情報を取得する方法はありますか?

EDIT:私はLinuxサーバ上でpyodbcを使用してPythonスクリプトに接続しています。私はこの接続を使用してSQLクエリを正常に実行することができますが、レコードセットのいくつかの並べ替えとして来るコマンドの結果を取得する方法を把握することはできません。

+0

結果をRecordSetまたは??として戻そうとしていますか?あなたはこれに何をアクセスしていますか? VBScript、.NET、またはその他のWindowsテクノロジ(あなたはODBCを使用しているので、Windowsの技術者が想定しています)。 – David

+0

一部の人々は単なるセマンティクスであると考えていますが、プラットフォームはもはやAS/400ではありません。実際の名前は本当に重要ではありません。あなたがウェブでヘルプを検索するつもりでない限りです。 「AS/400」で検索すると、10年前の結果が得られる可能性が高いです。あなたがWin98で作業していない限り、役に立たないかもしれません。 'iSeries'または現在の名前「IBM i」を試してみてください。 –

+0

@Buck、チップのおかげで。 – recklessmortal

答えて

1

あなたが正しく尋ねていることを私が解釈していることを希望します。ユーザープロファイルデータにアクセスしてファイルにダンプするようです。それで、Windows上で動作しているスクリプトなどで、そのファイルの内容を使用するように見えます。そのような場合:

一般に、ODBC/VBScriptまたは.NET経由でのWindowsのファイルからのデータにアクセスする場合、AS/400はデータベースのように扱われます。ライブラリー内のすべてのファイルは、組み込みDB2データベースを介して公開されます。それはすべて自動であり、ユニバーサルDB2データベースの一部です。

そうで、このファイルを作成した後、あなたはライブラリCHHFLEにTEST3という名前のファイルを持っている必要があり

あなたは、接続を作成し、内容を読み取るために、次のSQL文を実行したい:

Select * From CHHFLE.TEST3 

このもちろん、これにアクセスするための適切な権限があることを前提としています。スクリプトで実行する前にデータベースに対してSQLスクリプトを実行する機能を含む、iSeriesナビゲーター・ツールを使用してこれをテストできます。

追加

上記のコメントを読んだ後はPythonからDB2への接続のthis questionの情報があります。それが役に立ちそうです。

0

OUTPUT(*)は残念なことにstdoutではありません。つまり、OUTPUT(*)をODBC接続にリダイレクトすることはできません。 OUTPUT(*OUTFILE)経由でDB2テーブルにダンプするのは良い計画です。これが完了したら、他のDB2テーブルを使用しているかのように、標準のカーソル/フェッチ・ループを使用します。

+0

私は懸念しているのは、コマンドを実行して、outfileを実行して移植するのに時間がかかるが、サーバーのコマンドを送信した後にスクリプトを作成してから、 私は遅れてビルドする必要がありますか完了のためにoutfileをどういうわけかチェックしますか? – recklessmortal

+0

私は、単一のODBC呼び出しで必要な結果セットを返すストアドプロシージャを記述します。 –

関連する問題