Russian Qt Forum
Июнь 16, 2024, 04:06 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QSqlTableModel - как быстрее вставлять данные  (Прочитано 2365 раз)
Alex_C
Гость
« : Июль 04, 2012, 08:16 »

Есть бд на SQLite или MS Access (2 разных варианта программы). В базе около 200 тыс записей. Полей в таблице около 70.
Человек заносит в базу данные (при вставке практически все поля автоматически заполняются телеметрией, человек редактирует лишь одно поле). Нужно обеспечить максимальную скорость вставки и отражения данных в QTableView. Скорость может достигать 2-х записей в секунду.
Вопрос: как максимально быстро организовать вставку в QSqlTableModel?
Понятно, что можно так:
Код
C++ (Qt)
   model.insertRows(row, 1);
   model.setData(model.index(row, 0), 100);
   model.setData(model.index(row, 1), "Чего-то там");
   model.setData(model.index(row, 2), QDate(1985, 12, 31));
   model.setData(model.index(row, 3), 2007);
 
Но возможно есть какой то более быстрый способ?
Записан
RVZ
Гость
« Ответ #1 : Июль 09, 2012, 23:26 »

Может быть имеет смысл для сохранения данных пользоваться прямым INSERT а вивку обновлять время от времени ( с QueryModel) не все же 200 тс строчек нужны да и глазки быстрых обновлений не потянут - показывай партиями по 20-50 последних.
Или если надо чтобы эти данные на компе были (то есть время сброса в базу отложено для более благоприятного момента) тогда наверное имеет смысл реализовать собственную модель в которой метод записи реализовывался сразу пачкой столбцов(классом) (без постоянных вызовов index и прочей посредственности)
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.063 секунд. Запросов: 20.