मैं समस्या को दूर करने में कामयाब रहा हूं। कॉलिंग 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()