私はAzure SQLデータベースのElo計算を行うPythonプログラムを作成しています。問題は最後の2つの 'cursor.execute'コマンド(UPDATE)にあります。pyodbc UPDATEが例外をスローする
私はここに投稿する前にコードを取り出して小さくしましたが、すべての変数がfind_winnerメソッドとfind_loserメソッドから正しく渡されました。つまり、printコマンドは正しい値を示しています。
私はプログラムをそのまま実行すると、格付けの変更と例外ブロックからのメッセージを出力します。私がUPDATEメソッドをコメントアウトするとき、それはexceptメッセージを出力しません。私が思いつくことができる唯一の理由は、find_winnerとfind_loserからのタプルの変数がSQL文に正しく入力されていないことです。
私はそれを実行しようとした? winner_new_ratingとwinner_idの代わりに '%s'を使用しましたが、3つのバージョンのどれもうまくいきませんでした。
明らかに欠けていますか?変数に格納されたパラメータを入力する適切な方法は何ですか?
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
例外をキャッチしてメッセージを印刷します。 –