私は次のコードを試しました、
import pyodbc
try:
pyodbc.connect('DRIVER={%s};SERVER=%s;DATABASE=%s;UID=%s;PWD=%s' % (driver, server, database, uid, password))
except pyodbc.Error, err:
logging.warn(err)
私が得るエラーメッセージの形式は
('HY000', "[HY000] [MySQL][ODBC 5.1 Driver]Access denied for user 'root'@'192.168.2.27' (using password: YES) (1045) (SQLDriverConnect)")
エラーのメッセージ部分だけを受け取りたい、つまり
Access denied for user 'root'@'192.168.2.27'(using password: YES)
特にドライバーが見つからない、ホストがダウンしているなどのエラーをキャッチできるかどうかわかりません。
私はまた、次のようにエラーをキャッチしようとしました:
except pyodbc.OperationalError, err:
logging.warn(err)
except pyodbc.DataError, err:
logging.warn(err)
except pyodbc.IntegrityError, err:
logging.warn(err)
except pyodbc.ProgrammingError, err:
logging.warn(err)
except pyodbc.NotSupportedError, err:
logging.warn(err)
except pyodbc.DatabaseError, err:
logging.warn(err)
except pyodbc.Error, err:
logging.warn(err)
しかし、最後のものは常にエラーをキャッチします。
さらに、pyodbc.Error.messageが常に空であることがわかりました。エラーのメッセージだけを取得するにはどうすればよいですか。
ありがとう