Paradox Community
Search:

 Welcome |  What is Paradox |  Paradox Folk |  Paradox Solutions |
 Interactive Paradox |  Paradox Programming |  Internet/Intranet Development |
 Support Options |  Classified Ads |  Wish List |  Submissions 


Paradox Newsgroups  |  Paradox Web Sites  |  Paradox Book List  |  FAQs From The Corel FAQ Newsgroup  



Subject: FAQ: PdoxWin: Text Full FAQ 1999.06.30

Version 1.0 (1999.06.30)
first collected by Laurie McIntosh
edited by Mike Irwin, Laurie McIntosh, Lance Leonard,
and Kasey Chang
Repost by Mike Irwin; 2000.06.09
Repost by Mike Irwin; 2001.02.05

Please note: this is the first release of the FAQ.
Mistakes are expected, and some sections are still
missing. Please send in all the corrections or additions
you feel like! Also, if any comments here are yours, please
tell us so we can properly attribute them.

thanks!  --the editors

--BEGIN TABLE OF CONTENTS--

0 Introduction

1 What is Paradox for Windows?
2 Top X Questions
3 General Paradox Questions
4 Table and BDE Questions
5 Forms and Reports Question
6 ObjectPAL Questions
7 Network and Multi-user Questions
8 Query and Misc. Questions
9 Troubleshooting

Appendix A: Y2K issues

--END TABLE OF CONTENTS--

====================
0. Introduction
====================

Welcome to the Paradox FAQ. This FAQ addresses
the most frequent questions asked by new members of
Paradox Newsgroups and USENET fora.

-------------------------------
 0.1 Legal Info and Disclaimers
-------------------------------

Paradox is a trademark of Corel.

Borland Database Engine (BDE) is a trademark of Inprise.

This FAQ is intended to inform the public about the Paradox
relational database. The information provided in this FAQ
is provided "as is" and is not warranted in any way. The
information provided in this FAQ is not endorsed or authorized
by Corel or Inprise in any shape, form, or manner. The editors
claim NO responsibility for ANY illegal activity regarding
this file, or as a result of someone reading this file.

You may distribute this file, as long as the copies are
complete, unaltered, and are in electronic form only.

-------------
 0.2 Feedback
-------------

Please send feedback in a Corel Paradox newsgroup or the
comp.databases.Paradox newsgroup to any of the FAQ Team
mentioned at the head of this document. Please preface the
subject of your post with the string "PdxWin FAQ" to alert
Team members to the function of the message.

Please specify the section number the comment applies to,
if any.

If it's a correction or addition, your name will be noted as
a contributor unless you wish otherwise.

----------
 0.3 Misc.
----------

Official Paradox website: Drill down through www.corel.ca to
find a number of Paradox areas

Other Paradox-supporting websites:
    www.prestwood.com
    www.kallista.com
    sheep.east.ru:8100/~menkin/paradox.htm
====================
1 What is Paradox for Windows?
====================

Paradox for Windows is one of the most powerful and yet
affordable relational databases you can buy. Its chief
competitors on the 32-bit Windows platform are Microsoft
Access, Microsoft Visual FoxPro,  Borland Visual dBase,
Lotus Approach, Alpha Five, and Apple/Claris Filemaker Pro.
Of all of these, only Paradox is also available on Linux.

--------------------
 1.1 Paradox History
--------------------

Paradox started out as a DOS program by Ansa Corporation.
They designed Paradox 1.0 and 2.0. Later, Ansa was absorbed
by Borland, who produced 3.0, 3.5, 4.0, and 4.5, steadily
adding more and more powerful features.

When Windows 3.0 and 3.1 became popular, Paradox for Windows
1.0 was released in 1993. Versions 4.5 and 5.0 followed;
version 7.0 was released both as a 16-bit app and a 32-bit
app for Win9X and WinNT. At this point Paradox was sold to
Corel, who published versions 8.0 and, in 1999, 9.0 as
32-bit only versions.

------------------------
 1.2 System Requirements
------------------------

For the 16-bit versions of Paradox for Windows, Windows 3.1
with 4 MB of RAM and a lot of HD space is a bare minimum.
An 80386/33-based system with 16 MB of RAM was usable for
release 5, but barely adequate at the time of release of 7.0.

For the 32-bit versions of Paradox for Windows, an 80486
machine with Windows 9X or Windows NT, with 8 Megs of RAM
and a lot of HD space is again a very bare minimum.
Acceptable performance can be obtained with a Pentium/90 and
24 MB of RAM; additional memory rather than processor speed
will better improve performance.

You will need to install a printer driver to generate reports.
You do not need to physically have a printer attached, as
you can print to file as an intermediate format.

--------------------
 1.3 Version History
--------------------

1.0 - March 1993. No patch ever released.
4.5 -- one patch released
5.0 -- Patch release, dated December 12, 1995, is best version
7.0/16 -- ???
7.0/32 -- four patches released. SP 4 is on Corel FTP site.
7.0 Enterprise Edition -- 16- & 32-bit versions of standalone
 and runtime programs all on one CD
8.0 -- one patch, upgrades to 8.302. Includes ODBC 3.00.005
8.0 Runtime
9.0 -- released May 1999. Includes ODBC 3.11.000
9.0 Developers’ Edition (includes 9.0 Runtime)
9.0 SP1 August 1999
9.0 SP2 December 1999 (installs over SP1.
        May need extra file - see FAQ)
9.0 Runtime SP2 January 2000. Needs extra file - see FAQ
9.0 SP3 May 2000 (includes SP1 & SP2; may need use of
        registry patch - see FAQ)
9.0 Runtime SP3 May 2000 (includes SP1 & SP2)

====================
2 Top X Questions
====================

These questions have been asked more often than others.

Q: Are there any Y2K issues with PDOXWIN?
A: Not with Paradox date storage itself. See [3.1]

Q: Can I convert PDOXDOS applications to PDOXWIN?
A: Not really. See [3.2]

Q: What is "Cannot Initialize BDE: Directory is Busy" error?
A: Your Paradox has previously crashed. Restart Windows.
   See [4.1]

Q: What is "Cannot Initialize BDE: Directory controlled by a
     different .NET file" error?
A: You have incorrect network setup. See [4.2]

Q: Why are my form fields "read-only"?
A: It's the data model default with certain links. See [5.1]

Q: How do I print landscape consistently in NT?
A: Two workarounds available. See [5.2].
     Version 9 SP3 should have cured this problem

Q: Where do I find ODBC drivers for Paradox tables?
A: Free? Depends on which version. See [8.1]

Q: How do I compile an EXE with Paradox so I can distribute
   my app?
A: You don't. See [3.4B]

Q: How do I use barcodes with Paradox?
A: Input or output? See [3.3]

Q: I can't install Paradox 5/7? Says something is missing.
A: Your HD's too big. Partition it or temporarily "consume"
   some space.


===================
3 General Questions
===================

--------------------
 3.1 Are there any Y2K issues with PDOXWIN?
--------------------

There are no issues with the way Paradox stores DATE values.
In that sense, Paradox has ALWAYS BEEN Y2K compliant (not bad
for a program that's more than 10 years old!).

Individual versions have some input quirks that you need to
watch out for. Some of these can be controlled by the BDE,
others require you to upgrade your Windows as well. Be aware
that your applications are just ONE part of the Y2K puzzle.
Your hardware and your operating system must be Y2K compliant
as well.

The 16-bit versions of Paradox (1.0, 4.5, 5.0, and 7.0/16)
should be upgraded to the latest version of 16-bit BDE (2.52),
available at http://www.borland.com/devsupport/bde/oldver.html


The 32-bit versions of Paradox (7.0/32, 8.0, and 9.0) should
be upgraded to the latest version of the 32-bit BDE (5.01) if
they have not been upgraded yet; address:

http://www.borland.com/devsupport/bde/

For more information on the Paradox and Y2K discussion, see
appendix A:

Paradox and Y2K.

--------------------
 3.2 Can I convert PDOXDOS apps to PDOXWIN?
--------------------

The tables will be compatible. The rest you will have to
rewrite from scratch. There are NO conversion utilities
available. There is an old "Object Converter" for Paradox 5
that was supposed to convert DOS Forms and Reports. However,
it is generally agreed that the result looks horrendous, and
it does not convert scripts. The result is really more
trouble than it is worth.

You should analyse your scripts for general business rules
and implementation-independent techniques and then write a
new program from scratch. The benefit that using Paradox for
Windows brings to this process is that you can run both
Windows- and DOS-based systems from the same set of tables
at the same time, if you so wish, making migration an easier
process.

--------------------
 3.3 How do I use barcodes with Paradox?
--------------------

On the input side, the "keyboard emulator" barcode scanners
work with just about ANY application, DOS or Windows. These
fit between your keyboard and the computer. Barcodes scanned
are sent as keystrokes and the computer will not know the
difference.

On the output side, you can use barcode fonts (other Corel
applications come with several, and there is a huge number
available on the InterNet), though the exact format will
depend on the symbology you choose. There are other
possibilities including DLL's that generate DIBs, ActiveX
objects, and so on.

--------------------
 3.4 How do I use Paradox tables without Paradox?
--------------------

There are two ways to take this question.

A) You want to use Paradox tables in OTHER applications,
probably through ODBC, and you want to know where are the
ODBC drivers.

Microsoft's MDAC drivers (http://www.microsoft.com/data) can
handle versions 5 or lower, and they’re free. Borland’s
Delphi, Visual dBase, C++Builder, and J++Builder can all use
the BDE and thus access Paradox tables natively.

You can purchase the ODBC drivers from Intersolv
(http://www.intersolv.com) for Paradox versions 7, 8, and 9.

The Intersolv ODBC drivers are included on the Corel Paradox
8 and 9 CD's. However, read the user license before you
distribute them !

InterSolv driver 3.00.000 comes with WordPerfect Office 8,
and is a limited-functionality version. 3.00.005 is packaged
with Paradox 8; 3.11.000 with Paradox 9.

Paradox 9 comes with a JDBC driver.


B) You want to distribute Paradox applications without
purchasing a copy of Paradox for each user.

You need to purchase the "Paradox Runtime" that matches the
version of Paradox you are using. The Runtime allows you to
create install disks of your application as well as the
"runtime" to run your apps, and it also gives you rights to
distribute unlimited copies of the runtime in conjunction
with your apps.


--------------------
 3.5 Can I convert PDOXWIN X to PDOXWIN Y?
--------------------

In general, yes. The SOURCE CODE file (fsl, rsl, lsl, and
ssl) is compatible throughout the PDOXWIN versions, unless
you used somefeatures that only exist in certain versions.
An example is the Tabbed Notebook, which only exists in V7
or later.

The DELIVERED CODE file (fdl, rdl, ldl, and sdl) however,
is not compatible across versions. You will always need to
find the original SOURCE CODE, and redeliver, as delivery
physically removes the source code from the file.

If you are making the switch from 16-bit to 32-bit, you will
want to check if any of your forms call 16-bit DLLs which
may no longer exist in 32-bit Windows, or have modified API
calls.

--------------------
 3.6 How do I play a sound in PDOXWIN?
--------------------

[snipped from Corel newsletter]

Use the PLAYSOUND function on WIN9X.

The 32-bit counterpart to Mmsystem.dll is WINMM.DLL, and the
function is PlaySound. Here is an example:

Uses WINMM
    PlaySound(WavFileName CPTR, how CWORD, Flag CWORD)
endUses

methodPushButton(var eventInfo Event)
    playSound("C:\\yourDir\\yourFile.wav",0,0)
endMethod

There are several values for Flag. Some of the parameters
are:

0  play synchronously
1  play asynchronously
2  silence
4  points to memory file
8  loop the sound until next
16  don't stop any currently playing sounds

Put the playSound code in the open method rather than a
pushButton method. This calls an external DLL, and the DLL
should be loaded early instead of when needed.

Note: Case matters in this code, so I'd copy, paste and
alter the necessary parts.

--------------------
 3.7 How do I turn off the splash screen?
--------------------

Add -q (that’s "minus que") to the command-line that starts
Paradox. For other command-line parameters, see [9.1]

--------------------
 3.8 How do I install Paradox 5/7 when I get an error during
     install about a missing LIB file?
--------------------

Your hard drive has more than 2 gigabytes of free space.
This was not possible with older DOS and the "free space
check" routine overflowed.

You have to somehow decrease the free space below 2 gigs
before you can install, or deceive the computer. If you are
on a Novell network, there is a program called LESSPACE that
can help you. Otherwise, create some large files on the HD.
You can delete them later.


====================
4 Table and BDE Questions
====================

--------------------
 4.1 The "Cannot Initialize BDE: Directory is busy" error
--------------------

Usually this occurs when you are running the 16-bit version
of Paradox and Paradox has crashed, and you are trying to
start Paradox again.

This happens because Paradox loads and initializes the BDE
(Borland Database Engine). As a copy is already loaded into
memory (left over from the crash), the second copy will not
load.

It is possible to force BDE to unload using a program called
PDOXSAVE, however, it is recommended that you simply restart
Windows.

--------------------
 4.2 What is the "Cannot Initialize BDE: Directory
     controlled by a different .NET file" error?
--------------------

Paradox writes *.LCK files to ensure that file access rights
and locking are maintained. Each LCK file refers to a *.NET
control file. Multiple LCK files can have the same NET file,
but a LCK file cannot belong to multiple NET files. Each
instance of Paradox uses the BDE, which reads in a
configuration file when it is loaded

If you have one machine where the configuration file is set
to use NET file A and a second machine with it set to use
NET file B, then problems will occur when Paradox instances
running on these two machines attempt to use tables in the
same directory.

An instance of Paradox running on the first machine will
write a LCK file in a directory where that instance wishes
to access tables. This LCK file will refer to NET file A.
An instance of Paradox running on the second machine now
tries to operate in the same directory, sees the LCK file,
and finds that it references NET file A.  However, this
second instance of Paradox is using a BDE configuration
specifying NET file B, and it is at this point that you get
the error.

The fix is to make sure ALL Paradox users use the SAME
network control directory. Paradox will create the
appropriate NET file. See [7.1]'s first part on how to change
BDE settings.

After that's done, delete the LCK file and try again.


--------------------
 4.3 Why do my tables keep getting corrupted? (Also see [7.1])
--------------------

This is usually a multi-user problem, though it can happen to
single users as well. See [7.2] for some tips.

--------------------
 4.4 How do I repair tables?
--------------------

In general, you should keep a good backup for occasions like
this. At a minimum, keep a set of empty copies of the
tables you use.

If you did not have a copy, you can try Tools | Utility |
Table Repair. While the repair is supposed to make a backup
for you, you really SHOULD make a backup of the table BEFORE
you attempt the repair, just in case the repair ruins the
original as well.

To backup a table, you’ll need to copy ALL the files that
belong to the table. Essentially, that’s <TABLENAME>.*. For
example, if your table is called MYTABLE, you’ll need to
copy MYTABLE.*. Missing any one of the files may render the
table unusable without table repairs.

The Verify option in Table Repair may not detect all errors.
When in doubt, use the Rebuild option.

Occasionally, not even Rebuild will fix all the errors. If
the table can still be opened, consider using a query to
select all the records out into a different table, then
DELETE the original table, then change that "copy" (which
contains all the readable records from the original) to
the original’s specs.

In case of SEVERE table damage, Table Repair may not be able
to rebuild it. In this case, you should attempt to only
retrieve the data. The indices can be added later. As
explained above, the tables are composed of several files.
The main data is in the <TABLE>.DB. The indices are in
<TABLE>.PX, <TABLE>.XG?, and <TABLE>.YG?, where ? is a
single digit number. By removing the indices, table repair
should be able to repair the <TABLE>.DB itself and pull out
the readable data. You can then add the indices back (easy
if you kept empty copies, as suggested in the first
paragraph).

Another commonly-used technique is to export all your data
to a delimited, separated, text file and then re-import it
again into a new table. Then you have to redefine all your
indices and constraints for the table.

--------------------
 4.5 How do I use Paradox tables without Paradox?
--------------------
See [3.4]

--------------------
 4.6 Where can I find the latest BDE?
--------------------

Try http://www.borland.com/devsupport/bde


--------------------
 4.7 Where can I find the file structures of Paradox tables?
--------------------

Inprise considers that proprietary information and has never
released it. Use BDE or ODBC to access the tables.


====================
5 Forms and Reports Questions
====================

--------------------
 5.1 Why are my form fields "read-only"?
--------------------

When you build a form in Paradox for Windows and link tables
together, and they end up as a one-to-one relationship, the
"child" table(s) default to "read-only".

Why? Because in a case like that, the "child" is essentially
a lookup table.

You will need to go into the "data model" screen and manually
take off the read-only property by right-clicking the table
and deselecting "read-only".

--------------------
 5.2 How do I print landscape consistently in NT?
--------------------

Printing reports in Windows NT, especially in Paradox 8, has
problems because NT's printer  drivers are not WIN9X
compatible. There are two workarounds:

1) Try installing the same printer twice, once defaulted to
Portrait and once to Landscape paper, and give them slightly
different names. You should be able to select the printer to
print from in ObjectPAL or interactively and switch
orientation that way.

2) Assuming your report is being called from a pushbutton,
add this code to the button's pushbutton() method:

Var
  myRpt   Report
  rptInfo   reportPrintInfo
  prnOptions  printerOptionInfo
  printInfo  dynArray[]  anyType
endVar

;the name of your report goes in the following line
rptInfo.name = "someRptNamef.rsl"

prnOptions.orientation = printLandscape ; or printPortrait

;the next line gets your printer's current settings
printerGetOptions(printInfo)
;the next line sets your printer up to print landscape
printerSetOptions(prnOptions)
myRpt.print(rptInfo)
;the next line restores your printer's settings

printerSetOptions(printInfo)
;returns printer settings

3) With version 9, obtain SP3. Prior to this Paradox 9 had
the unfortunate habit of printing its first copy in
landscape, no matter what orientation was requested.

--------------------
 5.3 How do I send a report via e-mail?
--------------------

Currently there's no direct capability in Paradox.

With Paradox 8, you can try publish the report as an HTML
file, then use the MAIL object to attach that file and send
it. On the other hand the output is not very good.

Paradox 9 has also WPD (WordPerfect) and RTF capabilities,
if the HTML output is not good enough.

If that is still not good enough, you can always buy Adobe's
Acrobat. Their Acrobat Distiller can be called successfully
from within Paradox and files can be attached to e-mail.

Another alternative is to obtain a stand-alone email program
such as SPIMail (see TuCows.com) that you can manipulate
using Paradox’ text output and execute commands.

--------------------
 5.4 How do I get a pure ASCII report from PDOXWIN?
--------------------

In general, you can't. Windows is GUI, not a text environment.

You can TRY the Generic/Text driver and set the output to a
file, but the output is not good and you must manually enter
a file name every time. There's no way to automate that.

You can "fake it" with textstream method, but it can be a
tedious process.

Paradox 8 and later has a WRITETOTEXT method, though the
output is quite ugly. There’s just no reliable way of
converting a report built in GUI mode into ASCII text.

--------------------
 5.5 In Paradox 8, some fields seems to disappear in report
     preview, but they print just fine. Any ideas?
--------------------

1. Try turning OFF "word wrap" and "fit height" properties
for those fields.
2. In File | Page Layout, specify that the page is to be
designed for the screen, not the printer.
3. Move the fields in towards the left of the column they
are in, if they are in the right-most column. Give them a
visible box frame to show where the clipping is occurring.

====================
6 ObjectPAL Questions
====================

--------------------
 6.1 How can I get FORMAT("cc") to work correctly?
--------------------

FORMAT("cc"), which is supposed to capitalize the first
letter of each word in a string, does not work properly.
This is a bug of the BDE, and can affect Paradox for Windows
version 8 and below.

You will need to use this custom method instead:

method formatCC(strInput string) string
var
  arWords   array[] string
  strWord   string
  strOutput  string
endVar

strOutput = ""

; if nothing is passed, return nothing
if not strInput.isassigned() then
  return strOutput
endif

;break into individual words
strInput.breakApart(arWords)

;if no words are passed, return nothing
if arWords.size() = 0 then
  return strOutput
endif

for i from 1 to arWords.size()
  strWord = upper(arWords[i].substr(1,1))
  ;get the first letter, and make it uppercase
  if arWords[i].size() > 1 then
    ; get the remaining characters
    strWord = strWord + lower(arWords[i].substr(2,
arWords[i].size()))
  endif
  strOutput = strOutput + strWord + " "
endfor

return strOutput

endMethod

Format("cc") works correctly in Paradox 9, as the function
is now incorporated into Paradox. It remains "broken" in
BDE 5.01.

--------------------
 6.2 Why does SCAN seem to skip records?
--------------------

You probably tried to insert or delete records inside a SCAN
loop. That is a BAD idea. SCAN "caches" entries to increase
speed, and if you change the record count inside the SCAN
loop, you will end up skipping records or processing some
records twice. For example, when deleting records, a
deletion will be followed by a logical repositioning of all
the records in the table, followed by a positional increment
of the scan pointer to the "next" record. However, the
record which was initially "next" will have moved up one in
case of a deletion, and so be skipped.

Use WHILE loops for these instances. Here’s an example:

while True
   if <condition to satisfy in order to delete> then
      tcTableName.deleteRecord()
   else
      if not tcTableName.nextRecord() then
         quitLoop
      endif
   endif
endWhile


====================
7 Network and Multi-user Questions
====================

--------------------
 7.1 Why do my tables keep getting corrupted on NT server?
--------------------

First, check your BDE setup.

Using the BDE Config utility, set up the following:

Configuration | System | Init | Local Share = TRUE

Make sure all workstations accessing the database are using
the same netfile, as follows:

1. Using mapped drive letters, make the
Configuration | Drivers | Native | Paradox NET DIR setting:
  DriveLetter:\Path

2. A better alternative, using UNC, is:
  \\SomeMachine\DriveLetter\Path

All machines should have this pointing to exactly the same
directory. In the first instance, the Path MUST be identical
in every case. The drive letter may vary in order to
accommodate differences in mapping because of hardware
differences between machines.

Save the BDE file.

NT Server has a "lazy write" (or "opportunistic write")
option that seems to conflict with Paradox more often than
not. You will need to turn this feature off with regedit.

Warning - Incorrect use of REGEDIT can stop your system from
starting up, or cause other problems. Advanced users only!

Find the following key:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\
  LanmanWorkstation\Parameters

Change the UseOpportunisticLocking section from a 1 to a 0.
If you don't see this key, add it.

You should then restart your system for the change to take
effect.

--------------------
 7.2 Why do my tables get corrupted on Win9X machines?
--------------------

First, check your BDE setup.

Using the BDE Config utility, set up the following:

Configuration | System | Init | Local Share = TRUE

Make sure all workstations accessing the database are using
the same netfile, as follows:

1. Using mapped drive letters, make the Configuration |
Drivers | Native | Paradox NET DIR setting:
  DriveLetter:\Path

2. A better alternative, using UNC, is:
  \\SomeMachine\DriveLetter\Path

All machines should have this pointing to exactly the same
directory. In the first instance, the Path MUST be identical
in every case. The drive letter may vary in order to
accommodate differences in mapping because of hardware
differences between machines.

Save the BDE file.

Next, Control Panel | System | Performance | Advanced
Settings | File System | Troubleshooting.

Turn on "Disable new file sharing and locking semantics"
and turn on "Disable write-behind caching for all drives"

You will now be asked to restart your system. Do so.


====================
8 Query and Misc. Questions
====================

--------------------
 8.1 What ODBC drivers are available for Paradox?
--------------------

Microsoft's MDAC (http://www.microsoft.com/data) can handle
table versions up to and including 5.0.

For higher versions of Paradox (7, 8, and 9) you will need
to get ODBC drivers from Intersolv (http://www.intersolv.com).

If you own Corel Paradox 8 and 9, it should be on your
Paradox CD. In either case, you can perform a custom
installation of Paradox, installing only the BDE and ODBC
options, to install Paradox ODBC onto a machine.

--------------------
 8.2 Can I use ObjectPAL functions in QBE queries?
--------------------

Unfortunately, the answer is no. ObjectPAL functions are not
supported in queries. Most are supported in CALCULATED
FIELDS in forms and reports though.

If you need SUBSTR, consider using SUBSTRING with a SQL query
instead of a QBE query. See LOCALSQL.HLP file in your IDAPI
directory for more details. SQL also supports some date
functions.


====================
9 Troubleshooting
====================

--------------------
 9.1 Command line parameters
--------------------

Command-line parameters vary from version to version, but
most of the options have stayed the same. This is a list
from version 9's help file. Multiple parameters can be
combined.

-b Prevents multiple instances of Paradox from being loaded.
If Paradox is already running, the Paradox window is brought
to the front. If you try to load Paradox more than once
without changing the private directory, an error message
tells you that the BDE could not be initialized. This
parameter is included in the base shortcut for Paradox 9.

-c Starts Paradox with a clear desktop.

-d Filename
Specifies an alternate PDOXWORK.INI, which contains folder
definitions for use with the Project Viewer. By default,
Paradox does not use a .INI file to store settings, but you
can create a file named PDOXWORK.INI in your working
directory, and Paradox will read settings from it
automatically.

-e  Prevents writes to the system registry.

-f Forces writes to the system registry.

-i Filename
Specifies an alternate PDOXWIN.INI file, which contains
desktop settings. By default, Paradox does not use a .INI
file to store settings, but you can create a file named
PDOXWIN.INI and Paradox will read settings from it
automatically.

-m Loads Paradox as a minimized application. This is useful
if you want to load Paradox but not work with it immediately,
or if you wish to show a login screen before the rest of the
application.

-n Prevents saving work and private directories on exit.

-o Filename
Alternate BDE configuration file. (All BDE-based applications
one a machine must use the same BDE configuration file when
running concurrently. All BDE applications running
concurrently on a network should use the same NET directory.)

-p Directory
Start with a different Private directory than the one set in
the system registry (32-bit Paradox) or PdoxWin.ini file
(16-bit Paradox). Paradox stores its temporary tables in the
directory you indicate with this parameter. Each Paradox
instance must have its own Private directory; however,
multiple Paradox instances can run concurrently on one
machine.
If no directory is specified at all, a default directory in
the Paradox Samples area is selected.

If you do not indicate a full directory path (one with a
drive letter), Paradox looks for the new directory with
respect to the Paradox system directory.

-q Suppresses the Paradox splash screen while it is loading.

-s Prevents resizing of the Paradox window.

-t Allows resizing of the Paradox window.

-w Directory
Starts Paradox with the specified working directory instead
of the one saved in the system registry (32-bit Paradox) or
PdoxWin.ini file (16-bit Paradox). If no directory is
specified at all, a default directory in the Paradox Samples
area is selected.

-y Forces saving work and private directories on exit.

StartFile Opens the specified document and performs its
default action. Paradox looks in the current working
directory (see "-w" above) for the specified file unless you
include the full directory reference to that file.

You can tell Paradox to open a file when starting (for
example, a form or report) by typing the name of the file,
along with any necessary directory information. This does
not require a special option, but does require the file
extension. After loading, Paradox opens the file and
performs its default action. For example, Tables are
displayed in a table window, forms are displayed in a Form
window, scripts are run, and so on.

----END----

========================
Appendix A: Y2K and Paradox
========================

How will Paradox react to the year 2000? Will it still work?
The short answer is, Yes. All versions of Paradox for
Windows and Paradox for DOS are Y2K compliant in the sense
that they store dates with all digits of the year.

HOWEVER,  your application may NOT be Y2K compliant. It is
possible to write applications that will not function
properly in the 21st Century.

For those just arriving, here's the scoop on what Y2K
compliance means.

There are a number of issues, most of them nothing to do
with Paradox <g>.

When business computer systems were first written, dates
were stored not as four digits (1999), but as two (99).
This was for a number of reasons: it saved space on
primitive computers where saving two bytes per record was a
saving worth making; but also, because the end of the
century was a long way away. What this means is that
ambiguity exists as to whether a date is a 20th or 21st
century date.

So, the problems to be addressed for Y2K compliance are:

Hardware
Operating System
Application System (Paradox and BDE, the Borland Database
Engine, in this case)
Application

First - your computer (hardware) must be Y2K compliant.
Here's a simple test - but first a warning:

Some computers have been known to crash and burn when their
clocks roll over at midnight on the evening of December 31st
1999 with major, unrecoverable hard disk errors. Backup your
system first before trying this. We take no responsibility
for any damage done to your system trying this test.

Having said that, you might as well find out now, rather
than ruin your New Year<g>.

To test this, set the date to December 31st, 1999, and set
the time to 11:59pm. Watch what happens. If your computer,
after midnight, rolls over to Jan 1st 2000, then your
computer probably is okay. Now try restarting the computer.
If your computer still shows the date to be 1/1/2000, that's
a good sign. More strenuous tests exist, and if you are
in any doubt, you should consult an expert in the field.

Next, your operating system. Microsoft insists that Win95,
Win98, and WinNT4 are compliant. But see the Microsoft site
http://www.microsoft.com for details.

Next, your application system. As has been stated, all
versions of Paradox store years as four digits (strictly
speaking, Paradox stores dates as type LongInt, a long
integer, assigning every day since the year dot a unique
number, and then converts this number into a [corresponding,
user readable] date). But that's only half the story.
Paradox's database functions are driven by the Borland
Database Engine. All versions of BDE are compliant.

With caveats (see below).

But here's the catch. Your application itself may NOT be
compliant. There are a number of possible reasons for this.
Here are three examples which apply mainly to Windows
versions of Paradox:

1/ The BDE does not FORCE you to enter four digit years.
It lets you enter two digit years. What happens to a
two-digit year? How does the BDE interpret a year entered as
two digits? There's the rub. It varies.
One set of assumptions used is that if you enter a number
from 0-50, the year is assumed to be in the 21st Century.
From 51-99, the year is assumed to be in the 20th Century.
These may be valid assumptions for your application - they
may not be. The point is that you shouldn't ever allow the
system to make assumptions about dates. With PdoxDOS,
however, a two-digit year is always assumed to be in the
20th Century. This will STILL be true in the 21st Century.

If you can enter a two-digit date into any of your fields,
your system MAY not behave as you expect it to in the year
2000. Then again, it might.

To help get rid of these assumptions (in PdoxWin) set the
FOURDIGITYEAR setting in the BDE setup to TRUE. This forces
dates to display as four digits (1999) instead of two digits
(99). You can still enter them as two, but at least then you
can see if things are going wrong. So much for data entry.

But things can go wrong behind the scenes, and this is where
the trouble really starts.

2/ Your system may have fields that appear to be dates, but
are in fact (for example) alphanumeric. This would mean that
your system may store 5th of May 1999 as a string "05/05/99",
for example. You may not even be able to see it in your
forms, as the form may adjust it to read "05/05/1999".
Clearly, here is Y2K ambiguity. It may be simple to fix
(convert the field to type date, which in itself may be a
mission), or it may be impossible without an entire rewrite.
Why? Because a programmer who casts a date as type string in
a table will assume in all code that the field in question
is a string.

Consequently, to get the year from a date, the string will be
parsed for just the seventh and eighth characters (the "9"
and the "9", in "05/05/99").

This will not work properly if the field is converted to
type date. This is a classic Y2K situation.

3/ Some versions of BDE (prior to v5.01) will choke when
running a query which uses a two digit year. This will only
show up after your system date rolls over to 1/1/2000.
Obviously, you can do something about this with interactive
queries (just use four digits), but your application may be
running two digit year queries behind the scene. You can
upgrade BDE to5.01, of course, and the crashes will cease.
But then you're back in the situation of letting the BDE
make decisions about what century the date is referring to.
Maybe it'll still work. Maybe it won't. So, while Paradox is
compliant, your application might not be. It's a very
difficult question to answer without seeing a lot of code.

--end of Paradox for Windows FAQ--


Paradox Community Newsgroups


 Feedback |  Paradox Day |  Who Uses Paradox |  I Use Paradox |  Downloads 


 The information provided on this Web site is not in any way sponsored or endorsed by Corel Corporation.
 Paradox is a registered trademark of Corel Corporation.


 Modified: 15 May 2003
 Terms of Use / Legal Disclaimer


 Copyright © 2001- 2003 Paradox Community. All rights reserved. 
 Company and product names are trademarks or registered trademarks of their respective companies. 
 Authors hold the copyrights to their own works. Please contact the author of any article for details.