Solved

How to change the index of query at runtime?

Posted on 1998-11-27
11
206 Views
Last Modified: 2010-04-04
1. How to change the primary key of query at runtime?
2. Can i do it when the query is open?
3. How to use the second index with query?

Thanks for any help.

Ye Chen
0
Comment
Question by:yc
11 Comments
 
LVL 27

Expert Comment

by:kretzschmar
Comment Utility
hi yc,

what does you mean? a query has no primary key and no second index. Some databases use indexes automatically for the query some must explezit said to use an index for the query.

for changes a must query closed and reopened except changes on the filteroptions.

meikl
0
 
LVL 1

Expert Comment

by:EmmDieh
Comment Utility
The query optimizer of the underlying database system chooses the indexes automatically. Sometimes you can manually add your own plan of the indexes used.
In order to sort the result set of a query you'll have to use the "order by" clause of the "select" statement. To apply different sort orders you'll have to close the query change the "order by" clause und re-open the query.
Ex.:  select a, b, c from d order by c, b, a
So, you cannot change the order of the rows of the query-result-set while the query is open.

0
 

Author Comment

by:yc
Comment Utility
Hi, EmmDieh

When i use "order by " in SQL clause, i can modify but not update the query through DBGrid. Why?

It is very important for me to modify and post when use non-primary index!

Thanks for your help.

Ye Chen
0
 
LVL 4

Expert Comment

by:dwwang
Comment Utility
When using "order by", the result can no longer be a live result. However, you can user UpdateSQL to implement that. So you can use most of the conditional sub-clauses as well as modify the result.
0
 

Author Comment

by:yc
Comment Utility
Hi, dwwang
 
Would you give me an example of UpdateSQL which using "order by".
 
Merry Christmas and Happy New Year!

Ye Chen

0
Highfive + Dolby Voice = No More Audio Complaints!

Poor audio quality is one of the top reasons people don’t use video conferencing. Get the crispest, clearest audio powered by Dolby Voice in every meeting. Highfive and Dolby Voice deliver the best video conferencing and audio experience for every meeting and every room.

 
LVL 4

Expert Comment

by:dwwang
Comment Utility
Hi, an example is too complex to provide here, you can see the help on TUpdateSQL component in Delphi, there are detailed explanations as well as examples.

The main idea is that your input to the query is cached, and when you call ApplyUpdates, system will run the SQL statement stored in the TUpdateSQL component to perform the updates. If this helps, leave a message :-)

Merry Christmas and Happy New Year!

Regards,
Wang
0
 

Author Comment

by:yc
Comment Utility
Hi, dwwang
 
I had added the sqlupdate compontent to my application.
But it seems do not work.
 
I wander you send a simple example to my mailbox? (yc@1lansuite.com)

BTW: The points is increased to be 100. :)
 
Thanks very much.
 
Ye Chen
0
 

Author Comment

by:yc
Comment Utility
Hi, dwwang

my E-mail address is yc@lansuite.com

wait you.

Y.C.
0
 
LVL 4

Accepted Solution

by:
dwwang earned 150 total points
Comment Utility
Hi, it's very kind of you increasing the points to 100 :-), so I post it as an answer.

Actually if you are using D3 or above versions, there is an example showing exactly what you want in the "demos\db\cachedup" directory. However, you must have Local Interbase installed on you machine to get it work.

So if you still would like me to mail you the example, I can try to modify it into an example that use DBDEMOS(paradox), so that you can run it without problem.

Regards,
Wang
0
 

Author Comment

by:yc
Comment Utility
Hi, dwwang

I hadn't installed the Local Interbase on my machine.
I am using Delphi 4.01

Please mail me the example which use TDBGrid, TQuery, TDatabase, TUpdateSQL, TDataSource and a Button to UpdateCache.

Thanks very much.

Ye Chen

0
 

Author Comment

by:yc
Comment Utility
Adjusted points to 150
0

Featured Post

How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

Join & Write a Comment

A lot of questions regard threads in Delphi.   One of the more specific questions is how to show progress of the thread.   Updating a progressbar from inside a thread is a mistake. A solution to this would be to send a synchronized message to the…
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…
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…
In this tutorial you'll learn about bandwidth monitoring with flows and packet sniffing with our network monitoring solution PRTG Network Monitor (https://www.paessler.com/prtg). If you're interested in additional methods for monitoring bandwidt…

763 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

6 Experts available now in Live!

Get 1:1 Help Now