Solved

Disable Paradox Index

Posted on 2002-07-18
12
352 Views
Last Modified: 2010-08-05
Dear Experts, please help !

     For some reason, I'd like to disable all of the index ( the primary and secondary index ) of the paradox table.

     Please help me how to do it !

Thanks from apin.

ps. I'm using D5 Enterprise and Windows ME.

In xBase version I usually do this :

Use MyTable
Set Order To 0   // ( Or set order to )
// all of the index is disabled, but not deleted
0
Comment
Question by:pc_melsa
  • 5
  • 3
  • 3
  • +1
12 Comments
 
LVL 27

Expert Comment

by:kretzschmar
ID: 7162768
you can't disable,
only delete and recreate

meikl ;-)
0
 
LVL 3

Expert Comment

by:marcoszorrilla
ID: 7163306
As Kretzschmar say its not possible, but I think you were a Clipper Programmer or Fox, it isnt?
and you want to obtain the natural order of the registers.

If you create and Autoincrement Field, and an index for this field you will obtain the same effect.

Best Regards.
Marcos.
0
 
LVL 44

Expert Comment

by:CrazyOne
ID: 7163573
Curious to why you want to do this. Are you having sorting issues you wish to change?


The Crazy One
0
Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

 

Author Comment

by:pc_melsa
ID: 7167845
For Mr. Meikl,
    Can't we delete primary index programatically ( during run time ) ?

Thanks.
0
 

Author Comment

by:pc_melsa
ID: 7167850
For Mr. Meikl,
  Sorry, the question should be : can we delete primary and secondary index during run time ( programmatically ) ?

Thanks.
0
 
LVL 27

Accepted Solution

by:
kretzschmar earned 200 total points
ID: 7167894
yes, primary at last

just use something like this

  table1.close;  //can only be done on a closed table
  table1.indexdefs.update;  //retrieve indexes
  for i := table1.IndexDefs.Count -1 downto 0 do  //through all indexes, only the secondarys
    if not (ixprimary in table1.IndexDefs[i].Options) then
      table1.DeleteIndex(table1.IndexDefs[i].Name);
  //atleast now should be only the primary key
  table1.DeleteIndex('');  //'' is the default name for paradpx primary indexes

meikl ;-)
0
 
LVL 44

Expert Comment

by:CrazyOne
ID: 7167913
Actually according to the Delphi help DeleteIndex only works on secondary index's


"Deletes a secondary index for the table.

procedure DeleteIndex(const Name: String);

Description

Call DeleteIndex to remove a secondary index for a table. Name is the name of the index to delete. DeleteIndex cannot remove a primary index.

Note:     To delete an index, an application must first open the table for exclusive access."
0
 
LVL 44

Expert Comment

by:CrazyOne
ID: 7167919
You may need to use a TQuery to this with the following statement.

DROP INDEX TheTable.PRIMARY

and then call the ExecSQL method

0
 
LVL 44

Expert Comment

by:CrazyOne
ID: 7167934
begin

  with TQuery.Create(nil) do begin
    try
      SQL.Text := 'DROP INDEX ''TheTable.db''.PRIMARY';
      ExecSQL;
    finally
      Free;
    end;
  end;

end;
0
 
LVL 27

Expert Comment

by:kretzschmar
ID: 7167979
my code is tested, crazyone->no problem with the primary key
0
 
LVL 44

Expert Comment

by:CrazyOne
ID: 7168012
Oops you are correct meikl I just tested it and it did delete the primary. It appears the Delphi Help is inaccurate about this. :>)
0
 

Author Comment

by:pc_melsa
ID: 7168606
Thank you very much !!!
Best Regards,
apin
0

Featured Post

Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Question has a verified solution.

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

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…
Hello everybody This Article will show you how to validate number with TEdit control, What's the TEdit control? TEdit is a standard Windows edit control on a form, it allows to user to write, read and copy/paste single line of text. Usua…
This video shows how to quickly and easily add an email signature for all users on Exchange 2016. The resulting signature is applied on a server level by Exchange Online. The email signature template has been downloaded from: www.mail-signatures…
The Email Laundry PDF encryption service allows companies to send confidential encrypted  emails to anybody. The PDF document can also contain attachments that are embedded in the encrypted PDF. The password is randomly generated by The Email Laundr…

829 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