Tôi đã giải quyết được vấn đề. Đang gọi conn.commit()
đang làm cho con trỏ mất kết quả. Tôi có thể đã đọc nhầm một số tài liệu pymssql và đã nhầm lẫn thêm dòng đó - mã hoạt động hoàn hảo mà không có nó.
CHỈNH SỬA :Tôi nhận thấy sau khi tôi thực hiện thay đổi này, thủ tục được lưu trữ sẽ trả về kết quả tuy nhiên các phần chèn / cập nhật của thủ tục không được lưu. Bây giờ tôi đã rõ conn.commit()
là gì Đang làm. Nếu thủ tục được lưu trữ của bạn trả về kết quả VÀ thực hiện các thay đổi đối với cơ sở dữ liệu, bạn cần gọi conn.commit()
sau khi bạn tìm nạp chúng.
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()