私は問題を解決することができました。 conn.commit()
の呼び出し カーソルが結果を失うようにしていました。おそらく pymssql のドキュメントの一部を読み間違えて、その行を誤って追加しました - コードはそれがなくても完璧に機能します。
編集 :この変更を行った後、ストアド プロシージャは結果を返しますが、プロシージャの挿入/更新部分が保存されていないことに気付きました。 conn.commit()
が何であるかは明らかです をしていました。ストアド プロシージャが結果を返し、データベースに変更を加える場合は、conn.commit()
を呼び出す必要があります。
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()