Paradox Table Versions

Posted on 1999-01-27
Last Modified: 2010-04-06
I'm wanting to know the differences between Paradox 5 tables and Paradox 7 tables. I've heard that '7 tables have extra indexing facilities, but I don't know what these are. I've noticed that Database Desktop automatically decides what version to use.

I'm hoping to use Corel DatabasePublisher at some point, and it only supports Paradox upto version 5 and dBase upto version 5. How can I force Database Desktop to use version 5. ? Is there anyway to convert a version 7 table to a version 5 table ?
Question by:elkiors

Expert Comment

ID: 1363590
I'm using Delphi 3 Pro and the Database Desktop lets me select to create tables in "Paradox 5.0 for Windows" format with no problem.
Wich version of Delphi are you using?

Author Comment

ID: 1363591

That really should have been a comment. I'm using D3 Standard. That's not really the point though. What I want to know is what makes version 7 tables different from version 5.

LVL 27

Expert Comment

ID: 1363592
Hi elkiors,

the different is that Paradox7 supports more than one field to an Secondary-Index. I don't know about Corel-DatabasePublisher, but about Corel-Paradox 8 (Not much to invest).
To convert Typ 7 in Typ 5 with Corel-Paradox 8 you can Export the Typ 7 Table to a Typ 5 Table. To Force to create Typ 7 with Corel-Paradox 8 File|New|New Table|Blank here can you select the Typ of the Table.


Author Comment

ID: 1363593
Hi Meikl:

Sorry it's taken so long to respond. I've had a look at exporting P7 tables as version 5 using Paradox 7 and yep, it works ok. The only thing is, it didn't seem to preserve any of my indexes or validation, it just made a new blank table containing the data.

I don't really need to go as far as upgrading to P8. Is it just multi-field SECONDARY indexes that are extra in P7 from P5, or does P5 only support single field PRIMARY indexes as well ? (Why is the help in Paradox 7 and Delphi Database Desktop so useless!)

Is there any way to preserve the index and validation of a table when exporting from P7 to P5 or do you have re-generate things like referential integrity after the export ?

If you can answer to these last few items then please post as an answer rather than a comment so I can award the points, you've been most helpful as usual.

Kind Regards


Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

LVL 15

Expert Comment

ID: 1363594
By default, Database Desktop will use the lowest version possible. Depending on the features you need on your table, Database Desktop (I'll call it D.D. from now on) will use a higher version number.

For example, a simple Paradox table, with no 2nd indexes may be a v4 table. However, if you add referential integrity, validity checks, etc, D.D. will ask you if you want to make it a version 7 table. Sometimes, if you don't agree on upgrading the table, the feature may not be added to the table.

Why use v7 instead of v5? Although Paradox tables aren't stable at all, v7 is still far more reliable than versions 5 and 4.

You can move from one version to another by using the Table Utility than can be downloaded from Inprise's site. It will let you upgrade/downgrade the table's version.

However, I do not advise you to use Paradox 5 tables, since version 7 are more reliable.

Please let me know if you do not find the table utility at inprise's site.


LVL 27

Expert Comment

ID: 1363595
Hi elkiors,

i see the question is answered, i don't know the tool, which is spoken from. Maybe this tool can be downgrade your tables, including the Validation info.

here is a little delphi-routine example which will downgrade your level 7 tables to level 5, including the indexinformation.

The validation-Information is not available by this except the point that sounds like field must be filled. But the others min,max, default, inputmask must be added by hand.

procedure TForm1.Button1Click(Sender: TObject);
  Records_Copied : Integer;
  I : Integer;
  Table1.FieldDefs.Update;  {Retrieve all Fielddefinitions}
  Table2.FieldDefs.Assign(Table1.FieldDefs); {Copy Fielddefinitions}
  Table2.TableName := 'TheCopy.db';  {Give a Name}
  Table2.TableLevel := 5;            {Give a level }
  Table1.IndexDefs.Update;           {Retrieve all Indexdefinitions}
  Table2.IndexDefs.Assign(Table1.IndexDefs); {Copy Indexdefinitions}
  Table2.CreateTable;                {Create Table}
  Records_Copied := Table2.BatchMove(Table1,BatCopy); {Copy Records }
  For i := 0 to Table1.IndexDefs.Count - 1 do  {BuildIndexes}
  ShowMessage('Table created! '+IntToStr(Records_Copied)+' Records copied');


Author Comment

ID: 1363596

Hopefully you won't take this as being rude, I notice you've only just logged on to E-E. The thing is, if you read my comments, I'd already promised the points for this q. to Meikl since he had already contributed heavily in earlier comments, which gave me most of the info I needed. Pending the other extra couple of items I needed clarifying, I was more than happy with his input. Needless to say, I'm having to reject your answer so that Meikl can claim the points to which I believe he is entitled. I hope you can see this. However, thanks for the info. that you did include, it does give me an alternative avenue to explore should the need arise. Like I said earlier, Meikl has given all the info I need. But please don't let this put you off from contributing to other questions on this site. your points are noted about P7 being more stable than P5, but unfortuantely, as my original question states, I'm wanting to communicate with Corel Database Publisher which can only read upto P5. I think you'll find most of the community hear most helpful and gracious (as I have tried to be). Good luck on other q's.


Have I let Simonet down gently enough ? Please post your comment again as an answer so we can close the thread. Thanks for the extra piece of coding to rebuild indexes and such like. I clears the whole thing up for me

Looking forward to seeing your name in green.

LVL 27

Accepted Solution

kretzschmar earned 50 total points
ID: 1363597
well elkiors,

now my name will be green ;-)
a little more info about the indexes in P5.
The primary con go over more fields than one, its only the secondary index, which can in P7 over more than one field.
This feature is helpful if you have a n to n relationship and you will normalize it to an 1 to n relationship with a third table.

Yes, i think you was gentle enough with simonet.

i wish you good luck on your Projects

meikl :-)

Author Comment

ID: 1363598
Thanks Meikl,

Nice of you to add the extra info for when we should be using multi-field indexes. I'll be honest, when I'm trying to map a database, I try to get to at least 3rd normal form but try and keep single field primary keys using Autoincrement fields if necessary. Unfortunately, as yet, I'm only a novice, and this may not be the most efficient way of doing things, but for me readability, conciseness are what I try to achieve. I've no doubt, when I finally get the go ahead to redesign the company stock, quote and sales systems I might view things differently.

Kind regards, and thanks for your thoughts

See you on another thread


Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

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

Suggested Solutions

Title # Comments Views Activity
How to convert wav to mp3 in delphi 9 169
Printing problem 2 80
QRReport  TQrmemo vertical stretching 1 42
Unique identifier on a terminal server (rdp) 4 45
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…
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…
This video explains how to create simple products associated to Magento configurable product and offers fast way of their generation with Store Manager for Magento tool.
A company’s greatest vulnerability is their email. CEO fraud, ransomware and spear phishing attacks are the no1 threat to a company’s security. Cybercrime is responsible for the largest loss of money to companies today with losses projected to r…

932 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

12 Experts available now in Live!

Get 1:1 Help Now