Python2.6でpyodbcを使用してMicrosoftSQLServer 2005に接続しています。接続を開き、いくつかのカーソルを作成します。
c1 = connection.cursor()
c2 = connection.cursor()
次に、最初のカーソルでクエリを実行します。
c1.execute("select * from foo")
次に、2番目のカーソルでクエリを実行します。
c2.execute("select * from bar")
...そしてエラーが発生します:「接続は別のhstmtの結果でビジーです。」
c1.fetchall()
またはを実行した後、c1.close()
c2を使用できます。
私の質問は、一度に1つしか使用できず、同じものをいつでも再利用できるのに、接続上に複数のカーソルを作成できるのはなぜですか?そして、次のように、別のクエリの結果の各行に対してクエリを実行する場合は、次のようになります。
for x in c1.execute(...):
for y in c2.execute(...):
同じデータベースへの複数の接続を実際に作成する必要がありますか?