1
Ich versuche SQL-Abfrage aus einer Datei in Python 2.7.13 auszuführen und den folgenden Fehler beim Anzeigen der Ergebnismenge zu erhalten. Die SQL-Anweisungen in der Datei sind einfach wie count (*) aus der Tabelle, aber wenn diese Logik funktioniert, muss ich sie durch komplexe Abfragen ersetzen.Python - Führen Sie mehrere SQL-Abfrage aus Datei
Fehler
Info : (7,)
Traceback (most recent call last):
File "SQLserver_loop.py", line 19, in <module>
fields = c.fetchall()
File "pymssql.pyx", line 542, in pymssql.Cursor.fetchall (pymssql.c:9352)
pymssql.OperationalError: Statement not executed or executed statement has no re
sultset
Python Script:
import pymssql
conn = pymssql.connect(
host=r'name',
user=r'user',
password='credential',
database='Test')
c = conn.cursor()
fd = open('ZooDatabase.sql', 'r') # Open and read the file as a single buffer
sqlFile = fd.read()
fd.close()
sqlCommands = sqlFile.split(';') # all SQL commands (split on ';')
for command in sqlCommands: # Execute every command from the input file
c.execute(command)
fields = c.fetchall()
for row in fields:
print "Info : %s " % str(row)
c.close()
conn.close()
Fehlermeldung
**SQL File - ZooDatabase.sql**
select count(*) from emp2;
select count(*) from emp1;
**Error Log with SQL print statement output:**
C:\Python27\pycode>python SQLserver_loop.py
SELECT count(*) FROM emp2
Info : (7,)
SELECT count(*) FROM emp1
Info : (7,)
Traceback (most recent call last):
File "SQLserver_loop.py", line 20, in <module>
fields = c.fetchall()
File "pymssql.pyx", line 542, in pymssql.Cursor.fetchall (pymssql.c:9352)
pymssql.OperationalError: Statement not executed or executed statement has no re
sultset
Überprüfen Sie das Format für Abfragen in der Datei.Fügen Sie es zu der Frage hinzu. – shadow0359
Lassen Sie Ihren Code die Abfragen anzeigen, während er sie ausführt, damit Sie wissen, welche Abfrage das Problem verursacht, und bearbeiten Sie dann Ihre Frage, um uns zu zeigen, wie diese Abfrage aussieht. –
hinzugefügt die angeforderte Information der SQL-Datei & print-Anweisung in der Frage. – Rajeev