2017-12-06 6 views
1

クエリ実行後にQTリストに結果を保存する選択クエリがあります。私のコードのいくつかは次のとおりです。Qtリストのdbからクエリ結果を保存する方が良い

QSqlQuery querySelect; 

QStringList rfid; 
QList<QDateTime> datetimeIN; 
QList<QDateTime> datetimeOUT; 

...いくつかの他のコード+ querySelect準備.....私が知りたい

if(querySelect.exec()) 
    { 


      while(querySelect.next()) { 

       rfid.append(querySelect.value(0).toString()); 
       datetimeIN.append(querySelect.value(1).toDateTime()); 
       datetimeOUT.append(querySelect.value(2).toDateTime()); 

      } 

    } 
    else 
    { 
     qDebug() << querySelect.lastError(); 
    } 

結果を格納するための別の、より最適化より高速なアプローチがありますリストでは、これはむしろ遅いと思うので、サイクル中にquery.next以外のものがありますか? Qtの側で

+0

QVectorは、p-O-L-O @ – JLev

答えて

1

、私は考えることができる唯一の最適化は、ところで

querySelect.setForwardOnly(true) 

ですが、私はあなたが区切られた3つのいうし、アプローチを変更し、単一のクラスおよびそのためのリストを作成することができると思いますリスト。

struct Data 
{ 
    QString rfid; 
    QDateTime dtIn; 
    QDateTime dtOut; 
}; 

そこで、このような結果を格納します。

QList<Data> list; 
while(querySelect.next()) {  
    list.append({querySelect.value(0).toString(), 
        querySelect.value(1).toDateTime(), 
        querySelect.value(2).toDateTime()}); 
} 
+0

おかげで良いです。セットトップはトリックをした –

関連する問題