Для отладки я создал функцию проверки, которая просто заменяет?со значениями запроса ... это не высокие технологии :) но это работает!: D
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))
Результат:
SELECT * FROM dbo.MA_ItemsMonthlyBalances WHERE Item = 1 AND Storage = 2 AND FiscalYear = 'asdasd' AND BalanceYear = 12331 AND Balance = 'aas') AND BalanceMonth = 1
С этим вы можете войти или сделать что хотите:
rowcount = self.cur.execute(query,values).rowcount
logger.info(check_sql_string(query,values))
Если вам нужно просто добавить несколько исключений, перехватывающих функцию.