распечатывать SQL-оператор, построенный из SQLiteQueryBuilder

1

Чтобы облегчить отладку, можно ли распечатать выражение sql перед выполнением следующего запроса?

        c = qb.query(
                 epgDB, 
                 projection, 
                 selection, 
                 selectionArgs, 
                 null, 
                 null, 
                 sortOrder); 
Теги:

1 ответ

0

Если вы уже использовали определенные методы SQLiteQueryBuilder, например. appendWhere(), вы можете сгенерировать базовый оператор SQL, просто позвонив buildQuery():

SQLiteQueryBuilder qb = new SQLiteQueryBuilder();

// call qb.appendWhere(), qb.appendColumns(), qb.setProjectionMap() etc.

String sql;
sql = qb.buildQuery(null,  null, null, null, null, null, null); // pre API 11
sql = qb.buildQuery(null,  null, null, null, null, null); // API 11 and later

Оба метода объединяют параметры, ранее установленные отдельными методами, со своими параметрами перед вызовом buildQueryString(). Они не изменяют состояние объекта SQLiteQueryBuilder и поэтому безопасны для использования перед выполнением запроса.

Слово предостережения. Я узнал об этом из самого кода, а javadoc не упоминает об использовании этого метода для получения строки SQL. Следовательно, я советую быть предупреждением об изменениях, которые могут повлиять на поведение метода.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню