Jag har lyckats lösa problemet. Anropar conn.commit()
gjorde att markören tappade sina resultat. Jag läste förmodligen en del av pymssql-dokumentationen fel och lade till den raden av misstag - koden fungerar perfekt utan den.
REDIGERA :Jag märkte efter att jag gjorde den här ändringen, att den lagrade proceduren skulle returnera resultaten, men insättnings-/uppdateringsdelarna av proceduren sparades inte. Nu är det klart för mig vad conn.commit()
gjorde. Om din lagrade procedur returnerar resultat OCH gör ändringar i databasen måste du anropa conn.commit()
efter att du hämtat dem.
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()