QSqlQuery. программа на Debian вылетает если запрашиваю тип JSON |
Здравствуйте, гость ( Вход | Регистрация )
QSqlQuery. программа на Debian вылетает если запрашиваю тип JSON |
MishaUA |
20.6.2018, 21:45
Сообщение
#1
|
Участник Группа: Участник Сообщений: 185 Регистрация: 28.4.2013 Пользователь №: 3810 Спасибо сказали: 13 раз(а) Репутация: 0 |
Здравствуйте!
Есть база данных и в таблице один из столбцов имеет тип JSON. По не понятным причинам, моя программа, собранная и запущенная на Debian 9 вылетает, если делаю запрос, в котором есть это поле. К примеру:
Location имеет тип JSON; Абсолютно та же ошибка, если выбираю всё(SELECT *). Ошибка вот такая:
При этом там же прога, собранная и запущенная на винде работает отлично. И если я делаю UPDATE этого поля, то даже на дебиане работает. Ну и так же нормально работает если я изменяю тип с JSON на TEXT. Помогите, плиз)) Сообщение отредактировал MishaUA - 20.6.2018, 21:55 |
|
|
Алексей1153 |
21.6.2018, 7:33
Сообщение
#2
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
MishaUA, "WHERE" - убери
|
|
|
MishaUA |
21.6.2018, 7:36
Сообщение
#3
|
Участник Группа: Участник Сообщений: 185 Регистрация: 28.4.2013 Пользователь №: 3810 Спасибо сказали: 13 раз(а) Репутация: 0 |
упс, осталось от целой части кода. Реально там "SELECT Location, looking FROM Users", с которым, соответственно, вылетает.
|
|
|
Алексей1153 |
21.6.2018, 7:49
Сообщение
#4
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
MishaUA, при создании объекта
QSqlQuery query укажи в конструкторе ссылку на БД, иначе будет использоваться подключение по умолчанию. А какое оно там у тебя - может, в этом проблема ---------- А также попробуй, как это всё будет работать, если тип сменить на строковый Сообщение отредактировал Алексей1153 - 21.6.2018, 7:49 |
|
|
MishaUA |
21.6.2018, 9:08
Сообщение
#5
|
Участник Группа: Участник Сообщений: 185 Регистрация: 28.4.2013 Пользователь №: 3810 Спасибо сказали: 13 раз(а) Репутация: 0 |
Так подключение по умолчанию и используется. В проге ещё куча запросов, помимо этого))
Оказалось, что не смотря на то, что на винде не вылетает, если в запросе есть поле JSON, то возвращается пустой результат (0 строк), но при этом query.exec()==true. На винде Qt последний. |
|
|
Litkevich Yuriy |
21.6.2018, 10:26
Сообщение
#6
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
А что за СУБД? и какой драйвер Qt используется?
|
|
|
MishaUA |
21.6.2018, 11:13
Сообщение
#7
|
Участник Группа: Участник Сообщений: 185 Регистрация: 28.4.2013 Пользователь №: 3810 Спасибо сказали: 13 раз(а) Репутация: 0 |
MySQL (хостинг ukraine.com.ua). Но но хостинг и базу грешить нельзя, ибо с phpMyAdmin запросы, в которых есть json, работают отлично.
Драйвер (libmysql.dll) взят с офф сайта. Сообщение отредактировал MishaUA - 21.6.2018, 11:15 |
|
|
MishaUA |
23.6.2018, 9:01
Сообщение
#8
|
Участник Группа: Участник Сообщений: 185 Регистрация: 28.4.2013 Пользователь №: 3810 Спасибо сказали: 13 раз(а) Репутация: 0 |
В общем, погонял я на убунте, установив бд прямо на неё (использовал локально) и собрав в последнем qt. Глюк остался. Получается, баги самого Qt.
|
|
|
Iron Bug |
24.6.2018, 1:24
Сообщение
#9
|
Профессионал Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: 12 |
я не спец в Qt, но посмотри выхлоп со strace или gdb. скорее всего, не стоит какая-нибудь библиотека, нужная для работы с json.
|
|
|
Текстовая версия | Сейчас: 28.11.2024, 23:18 |