Select data from QSqlite in thread
-
I have used the thread to read data from QSqlite database
void RandomWalk::run() { qDebug("Thread id inside run %d", (int)QThread::currentThreadId()); QSqlQuery qry(db); qry.prepare( "SELECT * FROM TEST "); if( !qry.exec() ) qDebug() <<"here"<< qry.lastError(); else { qDebug( "Selected!" ); QSqlRecord rec = qry.record(); for( int r=0; qry.next(); r++ ){ qDebug() << QString( "Row %1, %2: %3" ).arg( r ).arg( rec.fieldName(0) ).arg( qry.value(0).toString() ); qDebug() << QString( "Row %1, %2: %3" ).arg( r ).arg( rec.fieldName(1) ).arg( qry.value(1).toString() ); } } }I don't use sleep in thread and it starts with : thread->start();
the output like :"Row 0, Field1: 77" "Row 0, Field2: 87" "Row 1, Field1: 77" "Row 1, Field2: 87" "Row 2, Field1: 77" "Row 2, Field2: 87" "Row 3, Field1: 76" "Row 3, Field2: 86" "Row 4, Field1: 77" "Row 4, Field2: 87" "Row 5, Field1: 77" "Row 5, Field2: 87" "Row 6, Field1: 77" "Row 6, Field2: 87" "Row 7, Field1: 77" "Row 7, Field2: 87" ....Why is space between output data?Why is not read data continuous?
-
Hi,
What do you mean by space ?
What is the expected output ? -
@SGaist Hi , the space between Rows 4
The output shouldn't continuous? like this:"Row 0, Field1: 77" "Row 0, Field2: 87" "Row 1, Field1: 77" "Row 1, Field2: 87" "Row 2, Field1: 77" "Row 2, Field2: 87" "Row 3, Field1: 76" "Row 3, Field2: 86" "Row 4, Field1: 77" "Row 4, Field2: 87" "Row 5, Field1: 77" "Row 5, Field2: 87" "Row 6, Field1: 77" "Row 6, Field2: 87" "Row 7, Field1: 77" "Row 7, Field2: 87" .... -
Each time you call qdebug, you get a new line printed on the console.
-
@SGaist Hi , the space between Rows 4
The output shouldn't continuous? like this:"Row 0, Field1: 77" "Row 0, Field2: 87" "Row 1, Field1: 77" "Row 1, Field2: 87" "Row 2, Field1: 77" "Row 2, Field2: 87" "Row 3, Field1: 76" "Row 3, Field2: 86" "Row 4, Field1: 77" "Row 4, Field2: 87" "Row 5, Field1: 77" "Row 5, Field2: 87" "Row 6, Field1: 77" "Row 6, Field2: 87" "Row 7, Field1: 77" "Row 7, Field2: 87" .... -
I have used the thread to read data from QSqlite database
void RandomWalk::run() { qDebug("Thread id inside run %d", (int)QThread::currentThreadId()); QSqlQuery qry(db); qry.prepare( "SELECT * FROM TEST "); if( !qry.exec() ) qDebug() <<"here"<< qry.lastError(); else { qDebug( "Selected!" ); QSqlRecord rec = qry.record(); for( int r=0; qry.next(); r++ ){ qDebug() << QString( "Row %1, %2: %3" ).arg( r ).arg( rec.fieldName(0) ).arg( qry.value(0).toString() ); qDebug() << QString( "Row %1, %2: %3" ).arg( r ).arg( rec.fieldName(1) ).arg( qry.value(1).toString() ); } } }I don't use sleep in thread and it starts with : thread->start();
the output like :"Row 0, Field1: 77" "Row 0, Field2: 87" "Row 1, Field1: 77" "Row 1, Field2: 87" "Row 2, Field1: 77" "Row 2, Field2: 87" "Row 3, Field1: 76" "Row 3, Field2: 86" "Row 4, Field1: 77" "Row 4, Field2: 87" "Row 5, Field1: 77" "Row 5, Field2: 87" "Row 6, Field1: 77" "Row 6, Field2: 87" "Row 7, Field1: 77" "Row 7, Field2: 87" ....Why is space between output data?Why is not read data continuous?