Название: Рекурсивный запрос Отправлено: Termit от Ноябрь 12, 2015, 19:39 Выбираю данные из базы. Имею валидный запрос (выполняется в любом менеджере БД) который не нравится Qt.
Код
Это sqlite3 - https://www.sqlite.org/lang_with.html Получаю ошибку "near "WITH": syntax error Unable to execute statement" Подозреваю, что QSqlQuery проверяет какой ему там запрос передали и интерпретирует его как сам захочет... Вопрос: Как заставить Qt выполнять такие запросы? Это вообще реально? Название: Re: Рекурсивный запрос Отправлено: Termit от Ноябрь 12, 2015, 19:51 Немного обманул.
консоль sqlite3 пишет ошибку синтаксиса. буду смотреть что ей не так. Название: Re: Рекурсивный запрос Отправлено: Termit от Ноябрь 12, 2015, 19:59 Возможность работы с такими запросами добавили в sqlite 3.8.3
Проверял через движок 3.8.11 Qt похоже использует тот который в системе 3.8.2 Попробую обновить в системе и надеюсь вопрос закрою. Название: Re: Рекурсивный запрос Отправлено: vbv от Ноябрь 12, 2015, 23:59 Блин. Ну как же приятно поговорить с умным человеком. :)
Вообще QSqlQuery ничего и никогда с запросом не делает он его, тупо, передает серверу в неизменном виде. Читать QSql вдумчиво. PS: sqllite и рекурсивный запрос - не перебор ли... Хотя, народ не без героев. Название: Re: Рекурсивный запрос Отправлено: Termit от Ноябрь 13, 2015, 01:18 Блин. Ну как же приятно поговорить с умным человеком. :) Та да, погорячился :) Вообще QSqlQuery ничего и никогда с запросом не делает он его, тупо, передает серверу в неизменном виде. Читать QSql вдумчиво. Читал и вдумчиво :). Хотел уже читать исходники, а не документацию Qt т.к. в приложении не работает, а рядом в браузере работает тот же самый запрос. Пока не понял, что проблема в движке (libqt4-sql-sqlite).PS: sqllite и рекурсивный запрос - не перебор ли... Хотя, народ не без героев. Мне больше нравится Postgres. Но скажу, что sqlite вполне себе база и если она предоставляет какие-то функции, так чего бы и не использовать?На больших записях не игрался, но дерево из 6К+ элементов строит и отбирает детей за 6 мс и меня вполне такое устраивает. |