@@ -205,9 +205,6 @@ def retranslate(cls):
205205 # return value - QSqlQuery object (to allow iteration through result)
206206 @classmethod
207207 def _exec (cls , sql_text , params = None , forward_only = True , commit = False ):
208- JalDB ._sql_call_count = JalDB ._sql_call_count + 1
209- if JalDB ._trace_sql_requests :
210- logging .debug (f"Trace SQL { JalDB ._sql_call_count } : '{ sql_text } '" )
211208 if params is None :
212209 params = []
213210 db = cls .connection ()
@@ -221,6 +218,8 @@ def _exec(cls, sql_text, params=None, forward_only=True, commit=False):
221218 for param in params :
222219 query .bindValue (param [0 ], param [1 ])
223220 assert query .boundValue (param [0 ]) == param [1 ], f"SQL: failed to assign parameter { param } in '{ sql_text } '"
221+ if JalDB ._trace_sql_requests :
222+ cls ._log_query (query )
224223 if not query .exec ():
225224 error = JalSqlError (query .lastError ().text ())
226225 if error .custom ():
@@ -232,6 +231,17 @@ def _exec(cls, sql_text, params=None, forward_only=True, commit=False):
232231 db .commit ()
233232 return query
234233
234+ # -------------------------------------------------------------------------------------------------------------------
235+ # Logs given query as SQL statement with parameters
236+ @classmethod
237+ def _log_query (cls , query ):
238+ JalDB ._sql_call_count = JalDB ._sql_call_count + 1
239+ query_text = query .lastQuery ()
240+ for k , v in zip (query .boundValueNames (), query .boundValues ()):
241+ v = f"'{ v } '" if type (v ) == str else v
242+ query_text = query_text .replace (k , str (v ))
243+ logging .debug (f"Trace SQL { JalDB ._sql_call_count } : { query_text } " )
244+
235245 # ------------------------------------------------------------------------------------------------------------------
236246 # Reads the result of 'sql_test' query from the database (with given params - the same as for _exec() method)
237247 # returns result of the query or None if result is empty
0 commit comments