Название: QSqlQuery - нужно вывести полный запрос в случае с bind Отправлено: Admin от Май 03, 2009, 10:26 Как мне вывести реальный исполняемый запрос?
Код
после выполняю Код
и получаю Цитировать getExpDomain SQL: "SELECT DISTINCT id FROM features WHERE ftype=? AND dcheck>? GROUP BY domain ORDER BY dcheck DESC" а хотелось бы реально выполненный запрос. База sqlite. Название: Re: QSqlQuery - нужно вывести полный запрос в случае с bind Отправлено: ритт от Май 03, 2009, 10:39 кажись, средствами кутэ никак )
Название: Re: QSqlQuery - нужно вывести полный запрос в случае с bind Отправлено: Admin от Май 03, 2009, 10:41 Вот и я так думаю - и логирование на базе sqlite тоже вроде не делается :-\
Название: Re: QSqlQuery - нужно вывести полный запрос в случае с bind Отправлено: Rcus от Май 03, 2009, 11:13 lastQuery всегда вернет установленный текст, executedQuery - настоящий текст запроса, но поскольку SQLite поддерживает PositionalPlaceholders Qt не будет заменять их на значения.
Название: Re: QSqlQuery - нужно вывести полный запрос в случае с bind Отправлено: lit-uriy от Май 03, 2009, 12:32 2 Rcus, это похоже справедливо для всех БД поддерживаемых в Qt.
Название: Re: QSqlQuery - нужно вывести полный запрос в случае с bind Отправлено: Tonal от Май 04, 2009, 12:12 Вообще-то запросы с параметрами - это стандартный апи самого движка базы.
При этом движку сначала передаётся запрос со специальными заменителями, а потом параметры к нему. Это позволяет экономить время на разборе запроса движком и трафик, если предполагается выполнить несколько похожих запросов подряд. Т.е. Qt при этом просто не знает "полного" текста запроса. Название: Re: QSqlQuery - нужно вывести полный запрос в случае с bind Отправлено: MoPDoBoPoT от Июнь 25, 2009, 21:11 Ответ, конечно, запоздалый :) но все же:
QVariant QSqlQuery::boundValue ( const QString & placeholder ) const QVariant QSqlQuery::boundValue ( int pos ) const QMap<QString, QVariant> QSqlQuery::boundValues () const Используя одну из этих функций можно восстановить весь текст запроса. Метод boundValues() самый универсальный, с помощью него слегкостью можно восстановить текст запроса, незная даже вид оного. |