Kann ich mehrere Cursor auf einer Verbindung mit pyodbc und MS SQL Server verwenden?

8

Ich verwende pyodbc auf Python 2.6, um eine Verbindung zu Microsoft SQL Server 2005 herzustellen. Ich öffne eine Verbindung, erstelle ein paar Cursor:

%Vor%

und führen Sie dann eine Abfrage für den ersten Cursor aus.

%Vor%

Jetzt führe ich eine Abfrage für den zweiten Cursor aus:

%Vor%

... und ich erhalte einen Fehler: "Die Verbindung ist mit Ergebnissen für eine andere Anweisung beschäftigt."

Nachdem ich eine c1.fetchall() oder c1.close() gemacht habe, kann ich c2 benutzen.

Meine Frage ist: Warum darf ich sogar mehrere Cursor auf einer Verbindung erstellen, wenn ich nur jeweils einen verwenden darf und derselbe immer wiederverwendet werden kann? Und wenn ich eine Abfrage für jede Zeile der Ergebnisse einer anderen Abfrage ausführen möchte, wie folgt:

%Vor%

Muss ich wirklich mehrere Verbindungen zu derselben Datenbank erstellen?

    
Josh 06.04.2011, 22:26
quelle

2 Antworten

0

Dies scheint durch Multithreading unterstützt zu werden: Ссылка

    
steamer25 21.02.2013, 22:24
quelle
-1

Ich meine eigene Praxis Ich habe nie die Notwendigkeit getroffen, mehr als einen Datenbankcursor zu verwenden. Solche Probleme werden oft durch komplexe SQL-Abfragen (Joins, Gruppen) gelöst. Oder (wenn Sie Leistungsprobleme ignorieren können), indem Sie mehrere einfache Abfragen verwenden.

    
Vasiliy Stavenko 07.04.2011 01:16
quelle

Tags und Links