int sqlite3_trace_v2(sqlite3*, unsigned uMask, int(*xCallback)(unsigned,void*,void*,void*),void *pCtx);
sqlite3_trace_v2(D,M,X,P) регистрирует функцию обратного вызова трассировки X для соединения с базой данных D, используя маску M и указатель контекста P. Если отзыв X = NULL или если M = 0, то отслеживание отключено. Аргумент M должен быть комбинацией OR из 0 или более констант SQLITE_TRACE.
Каждый запрос к sqlite3_trace(D,X,P) или sqlite3_trace_v2(D,M,X,P) отменяет все предшествующие вызовы sqlite3_trace(D,X,P) или sqlite3_trace_v2(D,M,X,P) для соединения с базой данных D. У каждого соединения с базой данных может быть самое большее один отзыв трассировки.
Отзыв X вызван каждый раз, когда любое из событий, определенных маской M, имеет место. Возвращаемое значение целого числа от отзыва в настоящее время игнорируется, хотя это может измениться в будущих выпусках. Внедрения отзыва должны возвратить ноль, чтобы гарантировать будущую совместимость.
Отзыв вызван с четырьмя аргументами: callback(T,C,P,X). Аргумент T это одна из констант SQLITE_TRACE, чтобы указать, почему отзыв был вызван. Аргумент C это копия указателя контекста. Аргументы P и X это указатели, значения которых зависят от T.
sqlite3_trace_v2() предназначается, чтобы заменить устаревшие интерфейсы sqlite3_trace() и sqlite3_profile().