Ведение журнала SQL-запросов для SQLite? - PullRequest
25 голосов
/ 22 октября 2009

Мне нужно регистрировать запросы, не только вставлять / обновлять / удалять, но также выбирать и другие запросы из ряда приложений, использующих SQLite. Введение регистрации в приложениях в этом случае не будет практически осуществимым решением. Итак, как я могу включить ведение журнала запросов в самом SQLite?

1 Ответ

11 голосов
/ 22 октября 2009

Посмотрите на API sqlite Trace . Вы должны осуществить обратный вызов самостоятельно.

void *sqlite3_trace(sqlite3*, void(*xTrace)(void*,const char*), void*);

Функция обратного вызова, зарегистрированная sqlite3_trace(), вызывается в разное время, когда оператор SQL выполняется sqlite3_step(). Обратный вызов возвращает рендеринг текста оператора SQL в кодировке UTF-8, когда оператор сначала начинает выполняться. Дополнительные обратные вызовы происходят при вводе каждой запущенной подпрограммы.

...