डीबग purpuse के लिए मैंने एक चेक फ़ंक्शन बनाया जो बस प्रतिस्थापित करता है? क्वेरी मानों के साथ ... यह उच्च तकनीक नहीं है :) लेकिन यह काम करता है! : डी
def check_sql_string(sql, values):
unique = "%PARAMETER%"
sql = sql.replace("?", unique)
for v in values: sql = sql.replace(unique, repr(v), 1)
return sql
query="""SELECT * FROM dbo.MA_ItemsMonthlyBalances
WHERE Item = ? AND Storage = ? AND FiscalYear = ? AND BalanceYear = ? AND Balance = ? AND BalanceMonth = ?"""
values = (1,2,"asdasd",12331, "aas)",1)
print(check_sql_string(query,values))
परिणाम:
चुनें * dbo.MA_ItemsMonthlyBalances से जहां मद = 1 और भंडारण = 2 और FiscalYear = 'asdasd' और BalanceYear = 12,331 और संतुलन = 'आस') और BalanceMonth = 1
यह आप लॉग इन करना या आप जो कुछ भी करना चाहते हैं कर सकते हैं:
rowcount = self.cur.execute(query,values).rowcount
logger.info(check_sql_string(query,values))
तुम सिर्फ कुछ अपवाद कार्य करने के लिए पकड़ने जोड़ने की जरूरत है।
यह निश्चित रूप से संभव है। इसका मतलब है ओडीबीसी चालक द्वारा किए गए परिवर्तनों को दोबारा लागू करना। आम तौर पर यह कुछ बच निकलेगा। –