Python SQLite how to get SQL string statement being executed
python, sql, sqlite
Solution
UPDATE. I learned from this web page that since Python 3.3 you can trigger printing of executed SQL with
connection.set_trace_callback(print)
Should you want to revert to silent processing, use
connection.set_trace_callback(None)
You can use another function instead of `print`, e.g. `logging.debug` or `logging.info`.
Problem
Let's say we have a SQL statement that just needs to be completed with the parameters before getting executed against the DB. For instance: ``` sql = ''' SELECT id, price, date_out FROM sold_items WHERE date_out BETWEEN ? AND ? ''' database_cursor.execute(sql, (start_date, end_date)) ``` How do I get the string that is parsed and executed?, something like this: ``` SELECT id, price, date_out FROM sold_items WHERE date_out BETWEEN 2010-12-05 AND 2011-12-01 ``` In this simple case it's not very important, but I have other SQL Statements much more complicated, and for debugging purposes I would like to execute them myself in my sqlite manager and check the results. Thanks in advance