का उपयोग करके संग्रहीत प्रक्रिया से परिणाम वापस नहीं कर सकते हैं कुछ अजीब कारणों से मुझे पाइथन परीक्षण ऐप में कॉलप्रोक कॉल से परिणाम नहीं मिल सकते हैं। MqSQL 5.2.47 में संग्रहीत प्रक्रिया इस प्रकार है:,पाइथन कर्सर
अब अजगर 3.3 के साथ PyCharm का उपयोग कर, मैं जब इस संग्रहीत प्रक्रिया बुला कुछ भी पुनः प्राप्त नहीं कर पा रहे।
import mysql.connector
cnx = mysql.connector.connect(user='root', host='127.0.0.1', database='mytestdb')
cnx._open_connection()
cursor = cnx.cursor()
cursor.execute("select * from person where person.person_id = 1")
people = cursor.fetchall()
for person in people:
print(person)
cnx.close()
लेकिन या तो cursor.fetchall() या cursor.fetchone() के साथ इस कोड ...
import mysql.connector
cnx = mysql.connector.connect(user='root', host='127.0.0.1', database='mytestdb')
cnx._open_connection()
cursor = cnx.cursor()
cursor.callproc("getperson", [1])
people = cursor.fetchall()
for person in people:
print(person)
cnx.close()
... रिटर्न "mysql.connector: इस कोड मुझे वांछित परिणाम हो जाता है। त्रुटियां। इंटरफेस त्रुटि: कोई परिणाम नहीं प्राप्त करने के लिए सेट किया गया है। " एक अतिरिक्त अजीब व्यवहार इतना तरह cursor.execute() विधि का उपयोग कर ...
import mysql.connector
cnx = mysql.connector.connect(user='root', host='127.0.0.1', database='mytestdb')
cnx._open_connection()
cursor = cnx.cursor()
cursor.execute("call getperson(1)")
people = cursor.fetchall()
for person in people:
print(person)
cnx.close()
... नहीं है, क्योंकि यह पैदावार: के बाद "mysql.connector.errors.InterfaceError कई प्रश्नों के साथ बयानों के लिए उपयोग cmd_query_iter" "mysql.connector.errors.InterfaceError: कई कथन निष्पादित करते समय बहु = सही का उपयोग करें" इस तथ्य के बावजूद कि मैं केवल एकाधिक परिणाम सेट के बजाय एक क्वेरी परिणाम लौटा रहा हूं। क्या MySQL पायथन कनेक्टर एक डबल क्वेरी के रूप में संग्रहीत प्रक्रिया पर निष्पादन कॉल का इलाज कर रहा है? मैं सिर्फ संग्रहीत प्रक्रिया को कैसे कॉल कर सकता हूं और अपने परिणाम वापस प्राप्त कर सकता हूं? मैं वास्तव में अपने कोड में गतिशील एसक्यूएल नहीं चाहता। किसी भी सलाह के लिए आगे धन्यवाद!
कि MySQL से एसक्यूएल सर्वर वाक्य रचना की अधिक नहीं होना चाहेंगे? –
क्योंकि यह MySQL के पीएल/एसक्यूएल में मान्य कमांड नहीं है। यह SQL सर्वर के टी-एसक्यूएल के लिए एक वैध कमांड है, लेकिन यह इस परियोजना के लिए मैं उपयोग नहीं कर रहा हूं। संग्रहीत प्रक्रियाओं का आह्वान करने के लिए MySQL का वाक्यविन्यास 'proc proc_name ([arguments])' है। – gfish3000