crossplatform.ru

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


  Ответ в QSQLITE Драйвер и QuerySize
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
Теги
Выровнять по центру
Ссылка на тему
Ссылка на сообщение
Скрытый текст
Сокращение
Код с подсветкой
Offtopic
 
Удалить форматирование
Спец. элементы
Шрифт
Размер
 
Цвет шрифта
 
Отменить ввод
Вернуть ввод
Полужирный
Курсив
Подчеркнутый
 
 
Смайлики
Вставить изображение
Вставить адрес электронной почты
Цитата
Код
Раскрывающийся текст
 
Увеличить отступ
По левому краю
По центру
По правому краю
Вставить список
Вставить список

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
grio Дата 30.11.2009, 14:11
 
Цитата(Litkevich Yuriy @ 30.11.2009, 13:28) *
А это ты вообще не реализуешь через Qt, т.к. весь запрос будет "думать" в БД. Когда БД будет готова отдать данные, она их будет отдавать с большой скоростью, с такой с какой в состоянии получать приложение


Я не правильно выразился, не для долгого запроса к базе, а для запросов с большим уровнем вложенности.

Цитата(521es)
while(q.next()) qsize++;


512es, ты выбрал далеко не самый быстрый способ подсчитать строки.
Kagami Дата 30.11.2009, 14:07
  Кстати, если операция долгая, попробуй использовать транзакции. Для sqlite cильно ускоряет работу, так как снижается число обращений к диску.
Litkevich Yuriy Дата 30.11.2009, 13:28
  grio, для того, чтобы узнать сколько запрос вернёт, надо использовать запрос кол-ва из самой БД, как сказал panter_dsd,
Цитата(grio @ 30.11.2009, 14:59) *
Я хочу сделать Progress Bar для долгого запроса к базе, как это лучше реализавать?
А это ты вообще не реализуешь через Qt, т.к. весь запрос будет "думать" в БД. Когда БД будет готова отдать данные, она их будет отдавать с большой скоростью, с такой с какой в состоянии получать приложение
BRE Дата 30.11.2009, 13:09
  Еще можно так попробовать:
if( m_query->last() )
    m_size = m_query->at() + 1;

512es Дата 30.11.2009, 13:06
 
Цитата(panter_dsd @ 30.11.2009, 13:35) *
Используй SELECT count(*).


а я делаю вот так:
q.exec();
int qsize = 0;
while(q.next()) qsize++;
q.first();
while(q.next()) {

}


Даже и не знаю какой способ лучше)
panter_dsd Дата 30.11.2009, 12:35
  Используй SELECT count(*).
grio Дата 30.11.2009, 11:59
  В текущей версии QSQLITE драйвера, метод QSqlQuery::Size(); не реализован.
На запрос QSqlDriver::hasFeature(QSqlDriver::QuerySize) возвращается false.

Как еще можно быстро получить количество возвращаемых строк по SQL запросу?

Я хочу сделать Progress Bar для долгого запроса к базе, как это лучше реализавать?
Просмотр темы полностью (откроется в новом окне)
RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 28.7.2025, 23:23