Solved

IB6 query: aborting / registering for callback

Posted on 2003-10-31
8
318 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
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
Back Up Your Microsoft Windows Server®

Back up all your Microsoft Windows Server – on-premises, in remote locations, in private and hybrid clouds. Your entire Windows Server will be backed up in one easy step with patented, block-level disk imaging. We achieve RTOs (recovery time objectives) as low as 15 seconds.

 

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

The Eight Noble Truths of Backup and Recovery

How can IT departments tackle the challenges of a Big Data world? This white paper provides a roadmap to success and helps companies ensure that all their data is safe and secure, no matter if it resides on-premise with physical or virtual machines or in the cloud.

Question has a verified solution.

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

Suggested Solutions

Creating an auto free TStringList The TStringList is a basic and frequently used object in Delphi. On many occasions, you may want to create a temporary list, process some items in the list and be done with the list. In such cases, you have to…
In my programming career I have only very rarely run into situations where operator overloading would be of any use in my work.  Normally those situations involved math with either overly large numbers (hundreds of thousands of digits or accuracy re…
Finds all prime numbers in a range requested and places them in a public primes() array. I've demostrated a template size of 30 (2 * 3 * 5) but larger templates can be built such 210  (2 * 3 * 5 * 7) or 2310  (2 * 3 * 5 * 7 * 11). The larger templa…

832 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