Solved

IB6 query: aborting / registering for callback

Posted on 2003-10-31
8
315 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
  • 4
  • 4
8 Comments
 
LVL 6

Expert Comment

by:swift99
Comment Utility
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
Comment Utility
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
Comment Utility
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
 

Author Comment

by:Leslie7
Comment Utility
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
Maximize Your Threat Intelligence Reporting

Reporting is one of the most important and least talked about aspects of a world-class threat intelligence program. Here’s how to do it right.

 
LVL 6

Accepted Solution

by:
swift99 earned 250 total points
Comment Utility
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
Comment Utility
…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
Comment Utility
What are your indexes like?
0
 

Author Comment

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

Featured Post

Top 6 Sources for Identifying Threat Actor TTPs

Understanding your enemy is essential. These six sources will help you identify the most popular threat actor tactics, techniques, and procedures (TTPs).

Join & Write a Comment

Have you ever had your Delphi form/application just hanging while waiting for data to load? This is the article to read if you want to learn some things about adding threads for data loading in the background. First, I'll setup a general applica…
Introduction I have seen many questions in this Delphi topic area where queries in threads are needed or suggested. I know bumped into a similar need. This article will address some of the concepts when dealing with a multithreaded delphi database…
It is a freely distributed piece of software for such tasks as photo retouching, image composition and image authoring. It works on many operating systems, in many languages.
Excel styles will make formatting consistent and let you apply and change formatting faster. In this tutorial, you'll learn how to use Excel's built-in styles, how to modify styles, and how to create your own. You'll also learn how to use your custo…

772 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

Need Help in Real-Time?

Connect with top rated Experts

14 Experts available now in Live!

Get 1:1 Help Now