Я использую функции query
для создания SQL-запросов для моих таблиц. Есть ли способ увидеть фактический запрос, который запущен? Например, запишите его где-нибудь?
Пока лучшее, что я мог сделать, это посмотреть на элемент mQuery-курсора, используя точку останова. Я бы хотел, чтобы вывести запросы автоматически. Этот член, конечно, не является публичным и не имеет получателя.
Только для записи, вот реализация принятого ответа.
/**
* Implement the cursor factory in order to log the queries before returning
* the cursor
*
* @author Vincent @ MarvinLabs
*/
public class SQLiteCursorFactory implements CursorFactory {
private boolean debugQueries = false;
public SQLiteCursorFactory() {
this.debugQueries = false;
}
public SQLiteCursorFactory(boolean debugQueries) {
this.debugQueries = debugQueries;
}
@Override
public Cursor newCursor(SQLiteDatabase db, SQLiteCursorDriver masterQuery,
String editTable, SQLiteQuery query) {
if (debugQueries) {
Log.d("SQL", query.toString());
}
return new SQLiteCursor(db, masterQuery, editTable, query);
}
}