PDA

View Full Version : extract record from database



sattu
8th March 2011, 14:36
hi everyone,

I am trying to extract data from a sqlite data base in embedded board.But it is taking 3 hours for 120510 records.My code is :



QString str="select * from user20";
query_model.setQuery(str);

i=0;
while(query_model.record(i).value("Id").toByteArray()!="")
{
data+=query_model.record(i).value("Id").toByteArray();
data=data+unit_sp;
data +=query_model.record(i).value("Name").toByteArray();
data=data+unit_sp;
data +=query_model.record(i).value("Address").toByteArray();
data +=record_sp;

i++;
}



Is there any better way to extract or any thing extract is required ?

unit
8th March 2011, 15:07
I don't known better way but can suggest to try this code with simple optimization:



QSqlQuery query("SELECT Id, Name, Address FROM user20");
while(query.next())
{
data+=query.value(0).toByteArray();
data+=unit_sp;
data+=query.value(1).toByteArray();
data+=unit_sp;
data+=query.value(2).toByteArray();
data+=record_sp;
}

Plz try it. It very interestingly for me how long it will be take

And you can extract data in parts (for example every 1000 records). It help for minimization memory usage.

Lykurg
8th March 2011, 15:23
what are you trying to achieve? To store all data in one QByteArray without and delimiter seems pretty nonsense to me. As a further improvement for speed, use the concat function in your sql, so you only have to query one field which will increase the performance.