Qt 10000插入

2 postgresql qt insert

我想在数据库中进行10000次以上的插入.我用这个简单的代码:

    int i = 0;
    for (i = 0; i < model->rowCount(); i++)
    {
        query.clear();
        query.prepare("INSERT INTO item (title, x, y, z) VALUES (:title, "
                      ":x, :y, :z);");
        query.bindValue(":title", title);
        query.bindValue(":x", model->data(model->index(i, 0)));
        query.bindValue(":y", model->data(model->index(i, 1)));
        query.bindValue(":z", model->data(model->index(i, 2)));

        if (! query.exec())
            return;
    }
Run Code Online (Sandbox Code Playgroud)

但它太慢了,而模型中发现的记录太多了.我怎样才能加快速度?可能Qt中有一些数据包插入功能吗?

我正在使用:Qt 4.7.0,PostgreSQL 8.4.8和Qt SQL驱动程序.

Ber*_*rak 6

准备一次,执行多少?我对QT一点也不熟悉,但这可能会加速整个过程:

int i = 0;
query.prepare("INSERT INTO item (title, x, y, z) VALUES (:title, "
   ":x, :y, :z);");

for (i = 0; i < model->rowCount(); i++)
{
    query.bindValue(":title", title);
    query.bindValue(":x", model->data(model->index(i, 0)));
    query.bindValue(":y", model->data(model->index(i, 1)));
    query.bindValue(":z", model->data(model->index(i, 2)));

    if (! query.exec())
        return;
}
Run Code Online (Sandbox Code Playgroud)