Solved

IB6 query: aborting / registering for callback

Posted on 2003-10-31
8
321 Views
Last Modified: 2010-04-05
Hi,

I checked the Interbase documentation, yet I have not found anything about aborting a query. Can it be aborted at all? Is there a way to register for a callback to provide some feedback to the user when executing a query?

Regards,
Leslie
0
Comment
Question by:Leslie7
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 4
  • 4
8 Comments
 
LVL 6

Expert Comment

by:swift99
ID: 9662920
1. I am not aware of any mechanism that allows a query to be aborted.  I work more with DB2 than Interbase, so my knowledge on this should not be taken as definitive.

2. There is a set of interbase monitoring components in Delphi 6 and up.  These should provide the functionality you are looking for, or their source code in the VCL source should allow you to develop the programming techniques for your callbacks.

0
 

Author Comment

by:Leslie7
ID: 9670808
Hi  swift99,

It is strange that even DB2 does not allow aborting a query. It seems so simple to add such functionality. :(

I need some time to check if interbase monitoring components can really help me.
0
 
LVL 6

Expert Comment

by:swift99
ID: 9671140
Adding that functionality could have significant performance implications, since an SQL engine will be, by necessity, a state engine returning stateless result sets.  I can see generally how it could be done, but making it reliable is not necessarily simple.  

I agree that it would be nice to have an abort sometimes.
0
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 

Author Comment

by:Leslie7
ID: 9674044
I guessed it might not as easy as it "seems". :)  

If the possibility of abortion would only be an option, the programmer could decide what is more important in every case.

I suppose the actual performance decrease depends on how often (on which “levels”) the engine checks for abortion. This could also be an option to fine tune between speed and reaction time.  

In case many queries (especially time consuming ones) needs to be aborted, the system performance sometimes can even increase, since the engine does not have to spend time on finishing useless queries and delay useful ones.  (I have such situation.)

Do you know any SQL engine at all which allows query abortion?


0
 
LVL 6

Accepted Solution

by:
swift99 earned 250 total points
ID: 9674234
Well ...

You can get Firebird (the open source version of Interbase).  Since it is open source, you could look and see for yourself, and even submit any changes you made to the commuity for approval   :o)

If I needed abort functionality, I would look at two things:

1. improving access paths so that I don't need abort
2. refining the granularity of my SQL so it is several distinct but very fast queries, allowing my program to abort between queries.

In the second case I would use a sideways loop in a separate thread from the GUI thread, which allows the GUI thread to set a flag and continue reacting to the user, and the query thread to finish and terminate in its own time.
0
 

Author Comment

by:Leslie7
ID: 9681504
…taking part in Firebird development ,  well … I don’t think I’m qualified for that at the moment. It would take “some”  :)  time to learn the inside details of  Firebird too. Though it would be nice to use an SQL engine which source code is avaible. It can be debugged …

 I have optimized everything I could, query abortion is probably the only thing left. Queries cannot be taken apart any more. Actually my conclusion was the same as your 2nd suggestion.

Thanks for your help.
 
0
 
LVL 6

Expert Comment

by:swift99
ID: 9691862
What are your indexes like?
0
 

Author Comment

by:Leslie7
ID: 9697603
I always pay attention on building the proper indexes. There is no more speed to gain there. :)
0

Featured Post

Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

The uses clause is one of those things that just tends to grow and grow. Most of the time this is in the main form, as it's from this form that all others are called. If you have a big application (including many forms), the uses clause in the in…
In this tutorial I will show you how to use the Windows Speech API in Delphi. I will only cover basic functions such as text to speech and controlling the speed of the speech. SAPI Installation First you need to install the SAPI type library, th…
Michael from AdRem Software explains how to view the most utilized and worst performing nodes in your network, by accessing the Top Charts view in NetCrunch network monitor (https://www.adremsoft.com/). Top Charts is a view in which you can set seve…
This is my first video review of Microsoft Bookings, I will be doing a part two with a bit more information, but wanted to get this out to you folks.

717 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question