2012-04-28 15 views
4

SQLAlchemyを使用して複数の結果セットを返すストアドプロシージャを呼び出そうとしています。問題がある場合、私はPyODBCとFreeTDSを使用しています。セッションオブジェクトでストアドプロシージャを呼び出す "exec"を持つ生のクエリを使用してexecute()メソッドを呼び出し、ResultProxyオブジェクトを取得します。sqlalchemyのResultProxyオブジェクトを使用して複数の結果セットを読み取ることはできますか?

生のpyodbcカーソルを使用して、nextset()関数を呼び出して次の結果セットに進むことができます。私はSQLAlchemyから戻ってくるResultProxyを使って同じことをする方法がありません。確かに、docsは言う:その 結果のすべての行(もしあれば)使い尽くされたときに

DBAPIのカーソルがResultProxyによって閉じられます。

SQLAlchemyで複数の結果セットを読み取る方法はありますか、または未処理のDBAPIでこのクエリを実行する必要がありますか?

答えて

8

の次のセット()はticket 1635です。 2歳です。 resultproxyの既存のautoclose動作がデフォルトのままになるように、ステートメントが複数の結果セットを返すというヒントに沿った実行オプションとともに動作するために、更新が必要な部分的なパッチが含まれています。この機能には多くのテストが必要です。

この機能には大きな技術的ハードルはありませんが、このユースケースにはほとんど関心がありません。だから、あなたは生のカーソルをつける必要があります。人々がこの機能の興味を十分に表明して、その勢いを再び取り戻すまでです。

関連する問題