InsertRecord performance in QSqlTableModel.



  • Dear all,

    @if (file.open(QIODevice::Readonly))
    {
    while (!file.atEnd()){
    QString str = file.readLine();
    QStringList strList = str.split("\t"); //parsing tab separated file
    QSqlTableModel.insertRecord(0,makeRecord(strList)); //makeRecord returns QSqlRecord
    }
    }@

    That cause serious performance problem. It takes 1 min to parse about 20K lines of file. What's wrong with that code?

    Thanks



  • No idea. Profile your program, switch to the manual submit strategy and call submitAll, consider using QSqlQuery inside ONE transaction, etc.



  • Thanks for advice.

    I already set manual submit. It just to add data to table & manual submitAll later.

    I'll try with QSqlQuery to source Table..



  • @peppe

    I can't get it, QSqlQuery inside ONE transaction is worsen than insertion of table row...

    How can I do that?



  • Where does the profiler say most of the time is being spent?

    Try using QSqlQuery directly rather than via the table model.


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.