6

SQLAlchemy を使用して複数の結果セットを返すストアド プロシージャを呼び出そうとしています。問題があれば、その下で PyODBC と FreeTDS を使用しています。セッション オブジェクトでストアド プロシージャを呼び出す "exec" を含む raw クエリを使用して execute() メソッドを呼び出し、ResultProxy オブジェクトを取得します。

生の pyodbc カーソルを使用して、nextset() 関数を呼び出して次の結果セットに進むことができます。SQLAlchemy から返された ResultProxy を使用して同じことを行う方法がわかりません。実際、ドキュメントは次のように述べています。

DBAPI カーソルは、すべての結果行 (存在する場合) がなくなると、ResultProxy によって閉じられます。

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

4

2 に答える 2

10

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

この機能には大きな技術的ハードルはありませんが、一般的に、このユース ケースにはほとんど関心がありません。したがって、現時点では、人々がこの機能に十分な関心を示して再び勢いをつけるまで、生のカーソルを使い続ける必要があります。

于 2012-04-28T04:55:29.430 に答える
0

http://docs.sqlalchemy.org/en/rel_0_7/core/connections.html?highlight=resultproxy#basic-usageを読みましたか? オブジェクトを反復処理しResultProxyたり、閉じたりすることができます。

于 2012-04-28T02:17:05.433 に答える