Я делаю программу python, которая выполняет вычисления Elo для базы данных Azure SQL. Проблема заключается в последних двух командах cursor.execute (UPDATE).pyodbc UPDATE выдает исключение
Я извлек часть кода перед публикацией здесь, чтобы сделать его меньше, но все переменные правильно передаются из методов find_winner и find_loser - команды печати показывают правильное значение.
Когда я запускаю программу как есть, она печатает изменения в рейтингах и сообщение из блока except. Когда я комментирую методы UPDATE, он не печатает сообщение except. Единственная причина, по которой я могу придумать, состоит в том, что переменные из кортежа из find_winner и find_loser не вводятся в SQL-инструкцию должным образом.
Я попытался запустить его с помощью? и «% s» вместо победителя_new_rating и winner_id, но ни одна из трех версий не работала.
Есть ли что-то очевидное, что мне не хватает? Каков правильный способ ввода параметров, хранящихся в переменных?
def rate():
try:
(winner_rating,winner_name,winner_id) = find_winner()
(loser_rating,loser_name,loser_id) = find_loser()
cursor = conn.cursor()
print(winner_name, "wins", winner_rating, "-->", winner_new_rating)
print(loser_name, "loses:", loser_rating, "-->", loser_new_rating)
cursor.execute("UPDATE KIDS SET Rating = winner_new_rating WHERE LocalID = winner_id")
cursor.execute("UPDATE KIDS SET Rating = loser_new_rating WHERE LocalID = loser_id")
conn.commit()
except:
print("Rate method error")
Что такое сообщение исключение? –
К сожалению, это сообщение об исключении. Он просто печатает сообщение из блока except. – user3364161
Итак, поймайте исключение и распечатайте сообщение. –