0

postgres と対話するための Python の pg モジュールは、DML クエリのエラー メッセージを表示しません。

意味のあるエラー メッセージを表示する pg モジュールに代わるものはありますか。

>>>import pg 
>>>
>>>
>>>conn = pg.connect(dbname="db", user="postgres", host="localhost")
>>>print conn.query("delete from item where item_id=0")
>>>None
>>>print conn.query("delete from item where item_id=0")
>>>None                     #This should have been an error message
4

2 に答える 2

2

エラー メッセージが表示されるのはなぜですか? I delete は、レコードが見つからない場合、サーバーでエラーを発生させません。では、一般的に適用可能なデータベース ドライバーでエラーが発生すると予想されるのはなぜでしょうか。

完全に正当な理由がある可能性があるため、その場合にエラーを発行するデータベースドライバーは考えられません。たとえば、データベース用語では、エラーは通常、トランザクションをロールバックしようとしていることを意味します。

独自の API をラップする場合は、アプリケーションでこれに対処する方法を決定するか、代わりに警告を発生させる程度にすることをお勧めします。

于 2013-11-13T05:41:13.350 に答える
0

psycopg2モジュールを知っていますか?Python 経由で PostgreSQL と対話するための非常に優れたモジュールのようです。モジュールのドキュメントに加えて、利用可能なチュートリアルがあります。docs に示されている例では、失敗したコマンドは実際にエラー メッセージを出力します。

私は個人的にこのモジュールの経験がありません。しかし、それはとても素敵に見えます!

于 2013-09-06T18:57:29.987 に答える