Give user feedback during long running query
Posted on 2010-09-06
Using vb.net vs 2008 and SQL Server 2000 in a windows forms application, I'd like to provide the user with some feedback when they request a large recordset. I am using a search form where they can enter multiple criteria and the SQL Statement is created on the fly. If they want a years worth of data for example, it might return hundreds of thousands of records. This takes several minutes with the only option to stop the search clicking the close form button and killing the program.
One option I saw was creating a moving marquee but that doesn't give the user an estimate of the time to fill the dataset.
Ideally I'd like a way to tell the user what is happening besides that annoying wait cursor. A record count as the records are sent over would be awesome (I thought about creating a govenor to limit the records to 5000 or whatever the user chooses but they need to have a fully open search capability). Is there any way to ask the server what the status is of the query? I suspect I'm getting into multithreading hell here but I've found users get frustrated if they don't see something return in 5 seconds or less...
Thanks for any ideas