![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
kibsoft |
![]()
Сообщение
#1
|
Участник ![]() ![]() Группа: Участник Сообщений: 180 Регистрация: 21.7.2009 Из: Самара Пользователь №: 928 Спасибо сказали: 14 раз(а) Репутация: ![]() ![]() ![]() |
Есть ли способы считать все данные результата запроса без цикла while(query.next()) ? Мне надо считать все данные в QHash. В таблице 52000 записей и все это считывание занимает 6 секунд..
|
|
|
![]() |
Litkevich Yuriy |
![]()
Сообщение
#2
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
kibsoft, от того, что ты воспользуешься другим способом скорость не изменится. В качестве объяснения:
Попробуй представить себе, что будет делать процессор в самом компактном случае. В таблице 52000 записей и все это считывание занимает 6 секунд.. считывание или перебор результатов с помощью while(query.next()) ?
|
|
|
Elfinit |
![]()
Сообщение
#3
|
Участник ![]() ![]() Группа: Участник Сообщений: 127 Регистрация: 17.3.2009 Из: Казань Пользователь №: 619 Спасибо сказали: 7 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
Litkevich Yuriy |
![]()
Сообщение
#4
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
MoPDoBoPoT |
![]()
Сообщение
#5
|
Участник ![]() ![]() Группа: Участник Сообщений: 172 Регистрация: 7.5.2009 Из: Москва Пользователь №: 738 Спасибо сказали: 44 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
kibsoft |
![]()
Сообщение
#6
|
Участник ![]() ![]() Группа: Участник Сообщений: 180 Регистрация: 21.7.2009 Из: Самара Пользователь №: 928 Спасибо сказали: 14 раз(а) Репутация: ![]() ![]() ![]() |
kibsoft, от того, что ты воспользуешься другим способом скорость не изменится. В качестве объяснения: Попробуй представить себе, что будет делать процессор в самом компактном случае. В таблице 52000 записей и все это считывание занимает 6 секунд.. считывание или перебор результатов с помощью while(query.next()) ?Ну вроде ка перебор..Я заношу каждую запись в QHash. |
|
|
Litkevich Yuriy |
![]()
Сообщение
#7
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
kibsoft |
![]()
Сообщение
#8
|
Участник ![]() ![]() Группа: Участник Сообщений: 180 Регистрация: 21.7.2009 Из: Самара Пользователь №: 928 Спасибо сказали: 14 раз(а) Репутация: ![]() ![]() ![]() |
Ну вроде ка перебор. дак ты вокруг цикла сделай так: и узнаешь точноДа я же так делал..6 секунд получилось. Вопрос то в чем, можно ли как-то по-другому получать данные из запроса? Или уже тут никак не ускорить этот процесс? |
|
|
Litkevich Yuriy |
![]()
Сообщение
#9
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
Что ты делаешь в этом цикле? Можешь всё тело цикла привести?
Какое-то страшное время у тебя получается. |
|
|
kibsoft |
![]()
Сообщение
#10
|
Участник ![]() ![]() Группа: Участник Сообщений: 180 Регистрация: 21.7.2009 Из: Самара Пользователь №: 928 Спасибо сказали: 14 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
Litkevich Yuriy |
![]()
Сообщение
#11
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
PunX |
![]()
Сообщение
#12
|
Студент ![]() Группа: Участник Сообщений: 56 Регистрация: 12.4.2009 Из: Димитровград Пользователь №: 676 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
В БД под управлением postgresql делаю запрос:
в результате получаю что в переменной res пусто и ошибку "QSqlQuery::value: not positioned on a valid record", хотя в БД запись есть. В базе тип поля значение которого вывожу numeric. |
|
|
Litkevich Yuriy |
![]()
Сообщение
#13
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
посмотри, что возвращает q.size() после выполнения запроса
PunX, ты не корректно используешь ЗАПИСЬ сначала спрашиваешь у запроса запись: QSqlRecord rec = q.record(); И только потом выполняешь запрос:if(!q.exec(str)){ Ты уверен, что запись действительна?
|
|
|
PunX |
![]()
Сообщение
#14
|
Студент ![]() Группа: Участник Сообщений: 56 Регистрация: 12.4.2009 Из: Димитровград Пользователь №: 676 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Возвращает 312, кол-во записей в таблице моей.
|
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 7.6.2025, 6:05 |