Автор: mva 24.12.2009, 18:46
Доброго времени суток всем!
Чего-то не могу найти как отключить опцию драйвера PostgreSQL QSqlDriver::PreparedQueries. Мне нужно, чтобы мои команды отправлялись на сервер в "чистом виде", без обработки.
Кто может помочь?
Автор: MoPDoBoPoT 24.12.2009, 19:19
По-моему надо написать свой драйвер, подправив имеющийся.
Проще, конечно, не использовать конструкцию QSqlQuery::prepare+QSqlQuery::bindValue+QSqlQuery::exec, заменив ее на QString::arg+QSqlQuery::exec.
А вообще не понятно зачем так делать? Вы враг оптимизации и админов БД?
Автор: Litkevich Yuriy 24.12.2009, 19:23
mva, ты в заголвке с эконмил всего четыре символа:
"как", пробел и знак вопроса.
Не экономь на этом.
Автор: mva 24.12.2009, 23:25
Цитата(Litkevich Yuriy @ 24.12.2009, 20:23)
mva, ты в заголвке с эконмил всего четыре символа:
"как", пробел и знак вопроса.
Не экономь на этом.
Дело не в экономии. Просто из-за отсутствия в Qt полноценных реляций таблиц по подобию Visual FoxPro, с которой я переписываю программу на Qt, я был вынужден на основе класса QSqlRelationalTableModel сделать свой класс, в котором можно к основной таблице добавить столбцы из таблиц, с которыми основная связана реляционными отношениями. Ясное дело, что в нем процедура генерации секции SELECT переопределена и несколько сложнее исходной. Т.к. новая таблица фактически состоит из нескольких, то и сохранять изменения в основной и связанных таблицах мне нужно по отдельности, разными командами UPDATE для каждой связанной таблицы. Когда я это пытаюсь сделать, драйвер перерабатывает мои команды UPDATE в какие-то чудовищные команды, которые он выводит из моего сложного запроса. Естественно, что это не работает.
А справочники у меня работают по старой схеме, как это предусмотрено Qt.
Автор: Litkevich Yuriy 25.12.2009, 10:26
mva, я про заголовок темы.
Цитата
Как_отключить опцию драйвера PreparedQueries?