>>>>>So, how can I get the SQL Server session id my query is running in?
>>>>
>>>>SELECT @@SPID
>>>
>>>Thank you.
>>>
>>>So, you say the query that runs the lengthy query should have an asynchronous connection, and the one that reads the advance of the first query should not be asynchronous. What I don get is, in what moment the one that reads the advance should be issued? And how can I know that the lengthy query is completed?
>>
>>Yes,.... and you can run the query that read the advance whenever (e.g. timer) you want to update the user on its progress
>>
>>You know when the query is completed when SQLEXEC(nASyncHandle) returns any other values than 0
>>
>>Walter,
>
>So, I guess I should do something like this:
>
>lnConn= SQLCONNECT('myOdbcDsn', 'myUserId', 'myPassword')
>SQLSETPROP(lnConn, 'Asynchronous', .T.)
>DO WHILE SQLEXEC(lnConn, 'SELECT * FROM myOrders', 'myCursor') = 0
> ** Show user something...
> ** Update progressbar...
>ENDDO
>** Continue program flow.
>
>
>If my example is correct, how can I know whether the long query terminated fine (returned 1) or not (returned -1) after the DO...WHILE loop?.
>
>TIA.
Yes, that would be ok. I'd build some delay (like a Sleep API call) of 100 ms in there.