[Qt-interest] Showing a "Please wait" dialog during sql query

Scott Aron Bloom Scott.Bloom at onshorecs.com
Tue Jun 8 20:45:48 CEST 2010


Its very similar to my previously posted code.. except it supports multiple queries and the progress dialog steps through the queries...

Scott

-----Original Message-----
From: Linos [mailto:info at linos.es] 
Sent: Tuesday, June 08, 2010 11:21 AM
To: Scott Aron Bloom
Cc: Qt-Interest
Subject: Re: [Qt-interest] Showing a "Please wait" dialog during sql query

Should be great to have the example Scott, i have been getting this problem for 
any time now, thanks :)

Miguel Angel.

El 08/06/10 19:37, Scott Aron Bloom escribió:
> I think part of your problem may be the query getting emitted.
>
> If its crossing a thread boundary on your signal->slot connection, and is being queued, then it's being copied.
>
> And the data from the db will not be copied with it.
>
> That's why in the example I posted, the other thread (the model) gets direct access to the QSqlQuery, and the thread is ONLY used to do the exec
>
> Note, I have extended my example (not posted) to allow for multiple queries, if you want I can post up an example showing that.
>
> Scott
>
>
>
> -----Original Message-----
> From: Linos [mailto:info at linos.es]
> Sent: Tuesday, June 08, 2010 8:59 AM
> To: Scott Aron Bloom
> Cc: Andre Somers; Qt-Interest
> Subject: Re: [Qt-interest] Showing a "Please wait" dialog during sql query
>
> i am creating the connection to the database and the query inside the thread,
> more specifically i create an QObject subclass that i call Worker in the QThread
> run method and in Worker i create the database connection, in every call for
> execute a query the Worker class create a new query with his database connection
> and execute the query, when the query has finished i emit the QSqlQuery from
> Worker to the QThread subclass and from the QThread subclass to the main gui
> where i assign it to a QSqlQueryModel.
>
> This shows the behavior described in the last email, the first query works
> wonderfully, the second query breaks the first model and show the results of the
> last query. I can attach the python module i use for this if any want to see, i
> have had not time to try other options but i would like to avoid have to make an
> special model to work with the record of every row or the variant of every
> column for every row.
>
> Miguel Angel.
>
>
> El 08/06/10 17:25, Scott Aron Bloom escribió:
>> The problem is, the ownership and affinety of the QSqlQuery must be the same
>> as the QSqlDatabase (This from Bill King of Nokia who is the/one of Nokia's
>> Qt database guys)
>>
>> So what I got working, is creating the QSqlDatabase and its connection
>> inside the thread (during the run phase), running the exec and emitting a
>> signal when finished.
>>
>> Once its finished, then you can use the QSqlQuery from the other thread
>> safely.
>>
>> Note, I have NOT tried modifying the QSqlQueyrModel, I would expect that if
>> you got the QSqlRecord from the thread it would be ok..
>>
>> Scott
>>
>>
>> On 6/8/10 1:16 AM, "Linos"<info at linos.es>  wrote:
>>
>>   >  I am using something like this with pyqt, the only difference it is
>> that i
>>   >  emit
>>   >  the QSqlQuery in a signal when the query has finished instead of
>> return it
>>   >  from
>>   >  a method, but when later i execute other query in the same sql
>> QThread with a
>>   >  new created QSqlQuery in the same QSqlDatabase connection of the
>> thread, the
>>   >  first model get corrupted and gets the values of the last query.
>>   >
>>   >  Miguel Angel
>>   >
>>   >  El 08/06/10 07:53, Scott Bloom escribió:
>>   >>  It got stripped.. My sent items has it attached...
>>   >>
>>   >>  It was/is a zip file...
>>   >>
>>   >>  Scott
>>   >>
>>   >>
>>   >>  On 6/7/10 10:23 PM, "Andre Somers"<andre at familiesomers.nl>  wrote:
>>   >>
>>   >>>  Op 8-6-2010 0:22, Scott Aron Bloom schreef:
>>   >>>>  I have attached a working solution. Its not fully vetted, so bugs
>>   >>>>  probably exist :) but it works in the case shown...
>>   >>>>
>>   >>>>
>>   >>>  Unfortunately, you have attached nothing...
>>   >>>
>>   >>>  André
>>   >>>
>>   >>>  _______________________________________________
>>   >>>  Qt-interest mailing list
>>   >>>  Qt-interest at trolltech.com
>>   >>>  http://lists.trolltech.com/mailman/listinfo/qt-interest
>>   >>
>>   >>
>>   >>
>>   >>  _______________________________________________
>>   >>  Qt-interest mailing list
>>   >>  Qt-interest at trolltech.com
>>   >>  http://lists.trolltech.com/mailman/listinfo/qt-interest
>>   >
>>
>
>
> _______________________________________________
> Qt-interest mailing list
> Qt-interest at trolltech.com
> http://lists.trolltech.com/mailman/listinfo/qt-interest





More information about the Qt-interest-old mailing list