Я попробовал это на эквивалентном примере и надлежащим образом протестировал результат «prepare» и «exec», которые оба возвращают логическое значение.Я проверил, что значения ограничены нормально после exec с:
QList<QVariant> list = query.boundValues().values();
for (int i = 0; i < list.size(); ++i)
qDebug() << i << ": " << list.at(i).toString();
Я проверил, что получил ожидаемый результат с
while (query.next())
qDebug()<<"result = "<<query.value(0);
Действительно, executedQuery
не содержал ограниченныйзначений, но комментарий в Qt несколько расплывчат на этом:
"Если подготовленный запрос с заполнителями выполняется в СУБД, которая его не поддерживает, подготовка этого запроса эмулируется. Заполнители в оригиналезапрос заменяется связанными значениями для формирования нового запроса. Эта функция возвращает измененный запрос. Это в основном полезно для целей отладки. "
Поэтому я предполагаю, что для postgresql (что у меня есть) и SQLite,executedQuery
возвращает оригинал с заполнителями, а не с ограниченными значениями.