Python SQLite 実行中の SQL 文字列ステートメントを取得する方法 質問する

Python SQLite 実行中の SQL 文字列ステートメントを取得する方法 質問する

DB に対して実行される前にパラメータで完了する必要がある SQL ステートメントがあるとします。例:

sql = '''
      SELECT  id, price, date_out
      FROM sold_items
      WHERE date_out BETWEEN ? AND ?
      '''

database_cursor.execute(sql, (start_date, end_date))

解析され実行される文字列を取得するにはどうすればよいですか? たとえば次のようになります。

SELECT  id, price, date_out
FROM sold_items
WHERE date_out BETWEEN 2010-12-05 AND 2011-12-01

この単純なケースではそれほど重要ではありませんが、他にももっと複雑な SQL ステートメントがあり、デバッグの目的で、それらを SQLite マネージャーで自分で実行して結果を確認したいと思います。

前もって感謝します

ベストアンサー1

更新。私が学んだのはこのウェブページPython 3.3以降では、実行されたSQLの出力を次のようにトリガーできます。

connection.set_trace_callback(print)

サイレント処理に戻したい場合は、

connection.set_trace_callback(None)

printの代わりに別の関数、logging.debugたとえばまたは を使用することもできますlogging.info

おすすめ記事