スクリプトで例外が発生した場合、クエリを使用してデータベースに保存しようとしています
try:
<-- Code raise Exception -->
except Exception ,e: #Not sure which exception will get thrown
saveToDB({'error_info':exc_info()[1]}, id=1)
def saveToDB(exp, id):
vals = ','.join(["%s='%s'" %(k,v) for k,v in exp.iteritems()])
query = "update trace_redo_lines set %s where id=%s" % (vals , id)
res = cr.execute(query)
仮定の例外を実行した後は
Traceback (most recent call last):
File "auto.py", line 22, in Upload
with open(self.log_path,'r') as out:
IOError: [Errno 2] No such file or directory: u'Z:\\Doc\\temp.txt'
デバッグ中に、cmdの例外出力が次のようになっていることがわかりました
IOError: [Errno 2] そのようなファイルまたはディレクトリはありません: u'Z:\\Doc\\temp.txt'
だから今、関数 saveToDB() でこの例外を渡していますが、クエリを保存しているときにエラーが発生します
*** ProgrammingError: ('42000', "[42000] [Microsoft][SQL Native Client][SQL Server]Incorrect syntax near '\\'. (102) (SQLE
cDirectW)")
そのため、安全にdbに入ることができるように、適切な形式で例外を作成することができません。
データベースを保存するために例外を簡単にフォーマットするための回避策はありますか。
ドライバー: pyodbc、python 2.6
ありがとうございます。