crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> QSqlQuery. программа на Debian вылетает если запрашиваю тип JSON
MishaUA
  опции профиля:
сообщение 20.6.2018, 21:45
Сообщение #1


Участник
**

Группа: Участник
Сообщений: 185
Регистрация: 28.4.2013
Пользователь №: 3810

Спасибо сказали: 13 раз(а)




Репутация:   0  


Здравствуйте!
Есть база данных и в таблице один из столбцов имеет тип JSON. По не понятным причинам, моя программа, собранная и запущенная на Debian 9 вылетает, если делаю запрос, в котором есть это поле. К примеру:
QSqlQuery   query;
query.prepare("SELECT Location, looking FROM Users WHERE");
query.exec();

Location имеет тип JSON; Абсолютно та же ошибка, если выбираю всё(SELECT *). Ошибка вот такая:
terminate called after throwing an instance of 'std::bad_alloc'
  what():  std::bad_alloc
Aborted

При этом там же прога, собранная и запущенная на винде работает отлично. И если я делаю 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.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 28.11.2024, 23:18