Russian Qt Forum

Qt => Model-View (MV) => Тема начата: burevestnik от Февраль 29, 2012, 10:00



Название: QSQLITE. QSqlTabelModel::submitAll() очень медлено!
Отправлено: burevestnik от Февраль 29, 2012, 10:00
QSQLITE. QSqlTabelModel::submitAll(). Если в таблице 1800 записей, то сабмитит две минуты. (В каждой записи шесть полей, не более CHAR(30) ). В не зависимости от того, каждую запись я делаю submitAll() или пишу все записи, а потом  делаю общий submitAll().


Название: Re: QSQLITE. QSqlTabelModel::submitAll() очень медлено!
Отправлено: Странник от Февраль 29, 2012, 15:41
PRAGMA synchronous=OFF;
PRAGMA temp_store=MEMORY;
пробовали?


Название: Re: QSQLITE. QSqlTabelModel::submitAll() очень медлено!
Отправлено: lit-uriy от Февраль 29, 2012, 16:06
делай отправку данных внутри транзакции.
Из примера sql/cachedtable
Код
C++ (Qt)
void TableEditor::submit()
{
    model->database().transaction();
    if (model->submitAll()) {
        model->database().commit();
    } else {
        model->database().rollback();
        QMessageBox::warning(this, tr("Cached Table"),
                             tr("The database reported an error: %1")
                             .arg(model->lastError().text()));
    }
}