crossplatform.ru

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


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

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

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


Последние 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 Текстовая версия Сейчас: 29.3.2024, 0:10