Det er lykkedes mig at løse problemet. Kalder conn.commit()
fik markøren til at miste sine resultater. Jeg har nok læst noget af pymssql-dokumentationen forkert og tilføjet den linje ved en fejl - kode fungerer perfekt uden den.
REDIGER :Jeg bemærkede, efter at jeg lavede denne ændring, at den lagrede procedure ville returnere resultaterne, men indsættelses-/opdateringsdelene af proceduren blev ikke gemt. Nu er det klart for mig, hvad conn.commit()
gjorde. Hvis din lagrede procedure returnerer resultater OG foretager ændringer i databasen, skal du kalde conn.commit()
efter du har hentet 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()