2

私はPythonプログラムを使用してMySQLデータベースを操作しています。Pythonでカーソルが閉じるエラーMYSQLConnection

Windowsサーバー2012タスクスケジューラを使用しようとすると、それはうまくいかず、レポートには成功したと表示されますが、結果は表示されません。

powershellスクリプトを使用してPythonプログラムを呼び出した後、タスクスケジューラ()で使用しても機能しません(自分で実行すると動作しますが)。

ここ

部分が盗聴として報告:

try: 
    dbconfig = read_db_config() 
    conn = MySQLConnection(**dbconfig) 
    cursor = conn.cursor() 
    delstatmt = "DELETE FROM `event` WHERE filliere='IRC' OR filliere='ETI' OR filliere='CGP'" 
    cursor.execute(delstatmt) 
    conn.commit() 
except Error as e: 
    print(e) 

finally: 
    cursor.close() 
    conn.close() 

")(cursor.close" 行であるエラー:UnboundLocalError:割り当て

注前に参照され、ローカル変数 'カーソル':それをタスクスケジューラによって処理されないときに機能します。

編集: Shubham Namdeoのソリューションが動作しますが、問題はconn.close()に切り替えられましたが、私も "try"で移動しました。なぜ私はそれを自分で実行するときに働いたので、最初の形式ではうまくいかなかったのか分かりません。他のエラーは現われているが、この質問には関係していない。

try: 
    dbconfig = read_db_config() 
    conn = MySQLConnection(**dbconfig) 
    cursor = conn.cursor() 
    delstatmt = "DELETE FROM `event` WHERE filliere='IRC' OR filliere='ETI' OR filliere='CGP'" 
    cursor.execute(delstatmt) 
    conn.commit() 
    cursor.close() 
    conn.close() 
except Error as e: 
    print(e) 
+0

'conn = MySQLConnection(** dbconfig)'が正しく動作しているかどうかチェックしましたか?そうでなければ、カーソルは作成されず、 'finally'ではpythonがエラーを発生させます。 –

+0

ありがとうございました。あなたの編集ごとに、回答も更新しました。 –

答えて

1

あなたの代わりにこのコードを使用してみてくださいここ

Have you checked whether conn = MySQLConnection(**dbconfig) is working correctly? If it is not, then no cursor will be ever created and in finally python will raise error.

私自身のコメントを引用:

try: 
    dbconfig = read_db_config() 
    conn = MySQLConnection(**dbconfig) 
    cursor = conn.cursor() 
    delstatmt = "DELETE FROM `event` WHERE filliere='IRC' OR filliere='ETI' OR filliere='CGP'" 
    cursor.execute(delstatmt) 
    conn.commit() 
    cursor.close() 
    conn.close() 

except Error as e: 
    print(e) 

これはあなたの問題を解決する可能性があります はここで最終的なコードです。

関連する問題