Het is me gelukt om het probleem op te lossen. conn.commit()
. aanroepen zorgde ervoor dat de cursor zijn resultaten verloor. Ik heb waarschijnlijk een deel van de pymssql-documentatie verkeerd gelezen en die regel per ongeluk toegevoegd - code werkt perfect zonder.
BEWERKEN :Ik merkte dat nadat ik deze wijziging had aangebracht, de opgeslagen procedure de resultaten zou retourneren, maar de invoeg-/bijwerkgedeelten van de procedure werden niet opgeslagen. Nu is het me duidelijk wat conn.commit()
was aan het doen. Als uw opgeslagen procedure resultaten retourneert EN wijzigingen aanbrengt in de database, moet u conn.commit()
aanroepen. nadat je ze hebt opgehaald.
server = 'MY\SERVER'
user = 'user'
password = 'password'
database = 'db'
proc = 'checkin'
with pymssql.connect(server, user, password, database) as conn:
with conn.cursor() as cursor:
cursor.callproc(proc, (eha, ip, url, alias, location, rotation))
cursor.nextset()
results = cursor.fetchall()
conn.commit()
f = open('/var/wwwdata/locations.txt', 'w')
for result in results:
print result[0]
f.write(result[0])
f.close()