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?
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.
Tags und Links python sql-server pyodbc