Python でのエラー処理関数
データベースに接続しようとしたり、SQL ステートメントを発行しようとしたりすると、エラーが発生することがあります。 ユーザー名またはパスワードが正しくない、表または列の名前のつづりに誤りがある、SQL ステートメントが無効である、などの可能性があります。 ibm_db API は、エラー状態から正常に回復するのに役立つエラー処理関数を提供します。
接続エラー
接続試行が失敗した場合は、リストされた関数のいずれかを使用して診断情報を取得します。
| 関数 | 説明 |
|---|---|
| ibm_db.conn_error | 最後の接続試行で戻された SQLSTATE を取得します |
| ibm_db. conn_errormsg | アプリケーション・エラー・ログに該当する記述エラー・メッセージを検索します。 |
SQL エラー
SQL ステートメントを準備または実行しようとして失敗した場合、あるいは結果セットから結果をフェッチしようとして失敗した場合には、リストされた関数のいずれかを使用して診断情報を取得します。
| 関数 | 説明 |
|---|---|
| ibm_db.stmt_error | SQL ステートメントを準備または実行する最後の試行、あるいは結果セットから結果をフェッチする最後の試行によって戻された SQLSTATE を取得します |
| ibm_db.stmt_errormsg | アプリケーション・エラー・ログに該当する記述エラー・メッセージを検索します。 |
ibm_db API について詳しくは、http://code.google.com/p/ibm-db/wiki/APIsを参照してください。
例
例 1: 接続エラーの処理
import ibm_db
try:
conn = ibm_db.connect("database","username","password")
except:
print "no connection:", ibm_db.conn_errormsg()
else:
print "The connection was successful" 例 2: SQL エラーの処理
import ibm_db
conn = ibm_db.connect("database","username","password")
sql = "DELETE FROM EMPLOYEE"
try:
stmt = ibm_db.exec_immediate(conn, sql)
except:
print "Transaction couldn't be completed:" , ibm_db.stmt_errormsg()
else:
print "Transaction complete."