Cancelling query with ADO and Oracle

S

Sandra

Hi All,

I am running a VB.NET application which is using ADO to connect to an Oracle
9i database. I have a form which runs a query which can take a considerable
time to run depending on the criteria that is entered. This query is run on
a seperate thread as I wish to return control to the application while this
query runs. The user can cancel the execution of this query at any time by
hitting a cancel button.

My question is how to terminate this long running query through ADO? - ADO
supports a cancel function however when I run this it takes a long time to
return. I have read in other places that with the cancel - it only starts
to cancel once the first row has been returned to the calling procedure - so
if the procedure takes 20 minutes to run to return the first row then the
cancel can take at least half this time just to cancel.

So how do I cancel ADO queries quickly and cleanly??

Any suggestions will be appreciated as at this stage I am contemplating
using the alter system kill session command in Oracle

Thanks
Sandra
 
M

Miha Markic [MVP C#]

Hi Sandra,

Are you concerned about cancelling the calling thread or oracle execution?
If you want to cancel the thread you might call Thread.Abort() method and
then just forget about the thread.
If you want cancel the operation on Oracle - then yes, probably something
like kill session will probably work.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top