Tue June 17 2008

IQ for UNIX version 4.2.3
All Rights Reserved.  Copyright (c) 1990 - 2008 by:
Dynamic Concepts, Inc. Aliso Viejo, CA 92656 USA

Email address:  support@dynamic.com
Information:    www.dynamic.com
Downloads:      www.dynamic.com


IMPORTANT REMINDERS:  
====================
    IQ4 requires Passport 4.1 or later.  Please install Passport 4.1 
    or later prior to running IQ4.  The IQ4 installation version script 
    does NOT install Passport.  The revision number of Passport can be 
    found in /etc/DCI/passport.log or its equivalent error log file.

    If you attempt to run IQ with a Passport older than 4.1, you will 
    see messages such as:

        Waiting for response from security daemon ...

    and eventually an exit.

    IQ4 will not run with an SSN issued for IQ2 or IQ3.  Please acquire 
    and install IQ4 SSNs prior to installing IQ4.

    IQ2 and IQ3 will run with IQ4 SSNs.

    DDMAINT and IQACCESS require IQ4 SSNs.

    IQ4 uses the IQDATA environment variable instead of LUST, DL4LUST,
    or LUMAP.

Installation instructions
=========================
1.  Ensure that you have Passport version 4.1 or greater installed on your
    system.  For common platforms, the latest Passport software can be 
    obtained from www.dynamic.com or ftp.dynamic.com.

2.  Login as 'root'.

3.  Copy the distribution file to any temporary directory on your system, 
    e.g., "/tmp".

4.  If the distribution file has a ".Z" extension, uncompress the file using 
    the command "uncompress filename.Z".  On Linux systems, use the command
    "gzip -d filename.Z".  If the file has an extension of ".z", rename the
    file with an uppercase "Z" before uncompressing the file.

5.  Unpack the distribution file using the command "cpio -imcdu <filename".
    If an error message occurs, try using the command "cpio -imdu <filename"
    or "cpio -imduHodc <filename".

6.  Type "./install".

Important Files
===============
install                 Installation script
iqinstall               Installation script (old name)
iqinstal                Installation script (old name)
README                  This file
license.txt             license terms and conditions
ddrefmt.doc             detail description for ddrefmt

New in Release 4.2.3
================================================================================
Tue Jun 17

o   Corrected a problem that caused /usr/lib/iq4 to have incorrect permissions
    on SCO OpenServer 6 installations (and possibly other systems).

New in Release 4.2.2
================================================================================
Fri Apr 18

o   Support the Linux 64-bit x86 platform (64).

o   Changed the installation procedure so that the installation archive can
    be expanded directly in /tmp without moving into an "iq" subdirectory.
    This makes installing IQ more compatible with other products but still
    allows usage of the old installation procedure.

o   Corrected a problem in which reading record 0 from a portable indexed
    contiguous file caused an "lseek failure" on some platforms.

New in Release 4.2.1.3
================================================================================
Tue Jan 16

o   Support the Intel Mac OS X platform (A1).

o   Corrected a problem in which demo SSNs that expired on July 1, 2007 or
    October 1, 2007 were treated as if they had already expired if they were
    used prior to July 1, 2007.  Passport version 4.3.2 or later must be
    installed to fully correct this problem.

o   IQ for Unix for the Linux x86 platform (6D) is now compiled and linked 
    on RedHat 9 Linux.  This platform update from RedHat 7.3 improves 
    compatibility with current Linux distributions, but may cause problems
    when running IQ on old Linux systems.

New in Release 4.2.1
================================================================================

Fri Dec 12

o   This version supports UniBasic and dL4 huge files (files larger than
    2 gigabytes) on Linux systems.  The underlying OS and file system must 
    be configured for files larger than 2 gigabytes.  

o   IQ for Unix for the Linux x86 platform (6D) is now compiled and linked 
    on RedHat 7.3 Linux.  This platform update from RedHat 6.1 adds support
    for files larger than 2 gigabytes, but may cause incompatibilities when
    running IQ on older Linux systems (RedHat 6.x or earlier).

o   This version allows reading a partial record in Dynamic Concepts 
    files (not Full-ISAM).  Previous versions of IQ treated a partial record
    in a file as if IQ had encountered an end of file (EOF).

New in Release 4.2
================================================================================
Thu Oct 25

o   This version supports UniBasic and dL4 huge files, i.e. files 
    larger than 2 GB on SCO UnixWare and IBM AIX.  The underlying OS and
    file system must be configured for files greater than 2 GB.  

    IQ temporary sort files are limited to 2 GB.  IQ builds temporary 
    files in /usr/tmp directory.  It is possible to create temporary 
    files in a different directory by setting an environment variable 
    TMPDIR to the desired directory.

o   Huge files are defined for IQ as dL4 portable files, i.e. file type 262.

o   IQ Access files do not support files larger than 2 GB.

o   This version of IQ requires IBM AIX version 4.3 or greater for platforms
    29 (Power AIX) and 07 (PowerPC AIX).

o   Platform 29 (Power AIX) now uses the same binaries as Platform 07 
    (PowerPC AIX).

New in Release 4.1.4
================================================================================
Fri May 4

o   This version of IQ requires IBM AIX version 4.3 or greater for platforms
    29 (Power AIX) and 07 (PowerPC AIX).

o   Platform 29 (Power AIX) now uses the same binaries as Platform 07 
    (PowerPC AIX).

o   Corrected problem with UniBasic/dL4 Indexed filenames with wildcards.

New in Release 4.1.3
================================================================================
Fri Feb 12

o   Corrected a problem with dL4 portable formatted files on IBM Power PC

New in Release 4.1.2
================================================================================
Fri Jan 29

o   IQ now displays a date field to be all 9s (invalid date), if the day does 
    not fall between 1 and 31, inclusive.

New in Release 4.1.1
================================================================================
Thur Aug 13

o   Bug fix: allows selection of alternate printers on PowerPC 603 AIX and 
    Power AIX, platform numbers 07 and 29, respectively.

New in Release 4.1
================================================================================
Mon May 18

o   Year 2000 compliant for IQ file types 261, 262 and 263.  These are 
    UniBasic and dL4 files, including dL4 FoxPro Full-ISAM files.

o   Correct Year 2000 ascending and descending sort of 2 digit year date 
    fields for UniBasic and dL4 files, including dL4 FoxPro Full-ISAM 
    files.  The sort will work correctly, even if a 2 digit year is stored 
    as part of key data.  For example, "010100" will appear before "010199"
    in a descending sort.  Likewise, "010100" will appear after "010199" 
    in an ascending sort.

o   Correct time calculation of 2, 3, and 4 digit year data fields for
    UniBasic and dL4 files, including dL4 FoxPro Full-ISAM files.

o   Correct leap year calculation for 2, 3 and 4 digit years for UniBasic
    and dL4 files, including dL4 FoxPro Full-ISAM files.

o   IQ interprets dates as specified in the data dictionary date layout 
    as follows:

      a) 4 digit years (Y4) are taken "as is".
      b) 3 digit years (Y3) are added to the DEFAULT century as configured
         in IQCONFIG.DAT item CD.
      c) For UniBasic and dL4 files, 2 digit years (Y2) are converted to 
         be in the nearest century based on a plus/minus 50 years rule.  
         A two digit year is thus assumed to be within 50 years, plus 
         or minus, of the current year as returned by the system.  For 
         example, if the system returns 1998 as the current year, then the 
         year 47 will be interpreted as year 2047, and year 49 will be 
         interpreted as year 1949.

o   The new IQCONFIG.DAT item CD allows the user to override the
    default century (1900) for a three digit year.  

o   Supports Index files with wildcards.

o   Supports using indices to read dL4 FoxPro Full-ISAM files.

o   Supports string, numeric, date and logical fields in dL4 
    FoxPro Full-ISAM files.

o   Supports automatic detection of UniBasic and dL4 flat files.

o   Supports UniBasic Universal Data files.

o   Supports dL4 Dates.

o   ddrefmt can now convert data dictionaries with filenames that use
    wildcards.

o   ddrefmt has a new non-abortive command line option

o   Supports links between a dL4 FoxPro Full-ISAM file and a flat file.

o   Supports links between a flat file and a dL4 FoxPro Full-ISAM file.

o   A new CONVERT command was added to the product to allow conversion
    from numeric and date fields to alpha fields.

o   The PROMPT command statement was enhanced to allow validation of the
    user input and to allow for a default prompt value to be specified.

o   Enhanced to improve the output to file with data dictionary.  Users are
    now allowed to update rather than replace the resulting output data 
    dictionary.  Also, the current data dictionary can be updated with the 
    transferred output information.
 
 o  The other major enhancement related to dictionary output is the new
    default location for the transfer dictionary to be written or updated.
    The output dictionary was written to IQOUTPUT (same location as the 
    output file).  As of this release, the transfer dictionary will be 
    written to the dictionary location specified by IQDD if it is set.  
    This is a major change in the way that IQ/IQ Access functions.

o   New popup boxes were created for the user interface to support the 
    enhanced output to file with data dictionary.
 
o   The improved output to ASCII_CSV and ASCII_FIXED files still queries
    the user if a data dictionary should be generated.  If you do not type
    in a name after choosing to output a data dictionary, then the current
    data dictionary is the one updated.  The Update option is automatically
    turned on when the current data dictionary is selected for output.
 
    Next, the user is queried for a category name to be used for output.
    The default category name is the same as the name of the transferred
    output file or the previously entered value.  The user is also queried
    for whether the resulting output category name should be unique or not.
    If the user chooses to make the category name unique, then a number will
    be appended to the name to ensure its uniqueness.  Otherwise, an existing
    category with the same name will be overwritten with the transferred
    dictionary information.
 
    If the category is overwritten, all previous VIEW and LINK records
    associated with the category will be deleted from the data dictionary.
    Procedures associated with the category will not be deleted, but may no
    longer be valid if the names of fields or files have changed.  Previous
    FILE and DATA FIELD records will not be deleted from the dictionary and
    could be "orphaned" if none of the remaining categories references them.
    Lastly, you are prompted whether to Overwrite or Update if the output
    dictionary already exists (and it is not the current dictionary). 
    Safeguards are in place to prevent users from overwriting the current 
    data dictionary or the current category.  Attempts to do so will 
    result in an error message.
 
o   IQ no longer prepends the value of IQDATA to the name of a data file to
    be opened if the name already contains an absolute path.  In previous 
    versions, IQ would prepend the value of IQDATA to the complete 
    pathname, and thereby create an invalid data file name which could 
    never be opened.
 
o   Enhanced to display the name of the current procedure on the top line 
    of the main Command menu box.  If no procedure exists or has yet been 
    saved, the default procedure name displayed is "Untitled".  Also, when 
    the user restarts the procedure using the Clear command from the 
    Utility menu, the procedure name will reset to "Untitled".

o   Stored procedure processing was enhanced in release 4.1 to allow the 
    user to start IQ with a list of procedures.  A new configuration 
    entry, G9, is used to toggle between methods of starting IQ.  When G9 
    is set to 'C' (for Categories) then IQ comes up as in previous 
    releases with a logo screen and then a list of categories.  Once a 
    category is selected, the user is given the main menu.  When G9 is set 
    to 'P' (for Procedures), a list of procedures (from all categories) is 
    displayed after the logo screen.  Once a procedure is selected, the 
    user is given the enhanced Stored Procedure menu.  A new option "Load" 
    was added in release 4.1 to the Stored Procedures menu.  The "Load" 
    option loads the procedure and its associated category and brings up 
    the main menu.
 
o   Another enhancement to the Stored Procedures menu is to allow the user
    to select from either a list of procedures in the current category or
    a list of procedures from all categories.  If the user chooses to see the
    list of all procedures in the dictionary, any selection will cause the
    category associated with the selected procedure to be loaded and thus
    become the current category.

o   The MOVE command was enhanced in release 4.1 to allow moving a date 
    literal to a temporary date field.

o   Enhanced to allow nesting of IF statements within an IQ procedure.  
    This enhancement was done in lieu of creating a new statement syntax 
    to support a SWITCH or CASE statement like those found in UNIX shell 
    and high level programming languages.

o   Adds quotes around numeric fields as well as alpha and date fields in 
    ASCII_CSV formatted output files. 

o   Handles data in scientific notation for type 1 fields.

o   A new configuration item has been added to IQ to support rounding
    of ASCII numeric values.

o   The new IQCONFIG.DAT item CC does not affect UniBasic and dL4 files.

IQ3 and IQ5 Dictionaries:
=========================
IQ4 is fully compatible with versions 3 and 5 data dictionaries.  However, 
a dictionary must be ddunloaded on the native system before moving to a
different type of system.  ddload must then be run on the target system. 

User Documentation:
===================
The latest documentation, "IQ for UNIX and Windows Installation and 
Reference Guide" may be obtained from www.dynamic.com.  dL4 date field
definitions are documented in this manual.  Briefly, dL4 date fields are
field type 176.

It is strongly recommended that all two and three digit years be converted 
to a four digit year to avoid any possible misinterpretation.

dL4 FoxPro Full-ISAM files are defined as file types 263. Enter the actual
filename, including the .dbf extension for, "File Name:".  Enter "Y", "1" 
and "1" when prompted for the "Is this file Indexed", "Primary Read 
Sequence" and "Record Length" prompts, respectively.  

While defining "Key Information", enter the actual field names that 
constitute the keys' fields as "Index File Name:".  Alternatively, you can 
enter the field number in response to the "Location of Key Part:" prompt.  
Enter the name of each field for each key part if multiple fields make up a 
key.  For example, if an index consists of first name and last name, 
then define first name as key part one, and last name as key part two.

Enter a one in response to "Key Number" prompt.  Enter a zero for a string
field, a one for a numeric field, or a 16 for a date field, in response to
"Type of Key Part" prompt.

All fields in a dL4 FoxPro Full-ISAM file are entered either by its field 
name in the file, or by its field number in the field location.  During 
runtime, IQ will attempt to locate a field by its field number if the 
field number (a positive integer value) was entered for its location.
IQ will attempt to locate a field by its field name if a zero was
specified for its location.  Upon detecting the field, IQ runtime
adjusts the field type, length and location from the file as set in the 
file.  If it detects a date field, then it correctly sets the date format 
and date layout.

In summary, if you want to find a field by its field number, specify a
positive value for its location.  Specify a zero for location if you 
want to find a field by its name.  This rule applies to defining fields, 
keys, and links.

IQ4 does not support memo fields in a dL4 FoxPro Full-ISAM file.

ISAM links are the only supported links when a link is made to a dL4 FoxPro 
Full-ISAM file.

Multiple Directories:
=====================
IQ4, like all previous versions of IQ, does not support multiple directories
in a single file definition.  A separate IQ file definition must exist for 
each directory to be accessed.

Supported File Types:
=====================
IQ release 4 supports files types 0, 1, 3, 44, 261, 262, 263, and 999.  All 
other file types are NOT supported.

In dL4 Portable files, IQ supports the ANSI, IRIS, UniBasic and UTF-8 
character sets as long as the string data contain all printable ASCII.

Networking:
===========
Although this product was not specifically tested in a network environment, it
should work in a properly configured NFS system which can properly
handle record locking.  The product itself does not use any system calls 
specific to networking.

Please verify that your system is configured correctly if you are having 
problems using this product in a network environment.  For your convenience, 
UniBasic release 6 and higher includes a standalone utility, ubtestlock,
to assist you in testing your configuration.  You may request a copy of 
this utility by contacting support@dynamic.com.

File List
=========
Your source media should contain the following files:

iqinstall*
iqinstal*
install*

./iq
README*        yAB_MAST.DAT   yconvert       ymportiq       yqmkhelp
danish/        yAB_MAST.IDX   ydindex        ynfo2cap       yqprtcfg.dat
ddrefmt.doc*   yECT_DET.DAT   ydload         yortiq.dat     yqrespns
dutch/         yECT_DET.IDX   ydmaint        yortiq.idx     yqscrn.dat
english/       yL_CURR.DAT    ydmaster.dat   yqcfgtrn.dat   yqscrn.idx
french/        yL_CURR.IDX    ydmaster.idx   yqcfgtrn.idx   yqtext.dat
german/        yL_HIST.DAT    ydrefmt        yqconfig       yqtran.dat
iqchksum       yL_HIST.IDX    ydschool.dat   yqconfig.dat   yqtran.idx
iqexpand*      yT_FIN.DAT     ydschool.idx   yqconfig.sql   yqxlat.437
lib.mnu*       yT_FIN.IDX     ydtran.dat     yqexcs.def     yrrors.doc
license.txt*   yT_MAST.DAT    ydtran.idx     yqhelp.fld     ysgindex
manchgs.doc    yT_MAST.IDX    ydunload       yqkey.def      yxportiq
prodlist       y_INFO.DAT     ydupdate       yqkwd.dat      yycrc
scrnecho*      y_INFO.IDX     yecureiq       yqlicens       yyiq
spanish/       yaketerm       yecureiq.dat   yqlicens.dat   yyiqcap
sql.mnu*       yblkwd.dat     yecureiq.idx   yqlicens.idx   yyiqtee

./iq/danish:
iqchksum       yqtext.dat     yqtran.dat     yqtran.idx     yqtran.pc

./iq/dutch:
iqchksum       yecureiq.dat   yortiq.pc      yqkwd.dat      yqtran.dat
ydmaster.dat   yecureiq.idx   yqcfgtrn.dat   yqscrn.dat     yqtran.idx
ydmaster.idx   yecureiq.pc    yqcfgtrn.idx   yqscrn.idx     yqtran.pc
ydschool.dat   yortiq.dat     yqcfgtrn.pc    yqscrn.pc
ydschool.idx   yortiq.idx     yqhelp.fld     yqtext.dat

./iq/english:
iqchksum       ydtran.idx     yortiq.idx     yqkwd.dat      yqscrn.pc
ydmaster.dat   ydtran.pc      yortiq.pc      yqlicens.dat   yqtext.dat
ydmaster.idx   yecureiq.dat   yqcfgtrn.dat   yqlicens.idx   yqtran.dat
ydschool.dat   yecureiq.idx   yqcfgtrn.idx   yqlicens.pc    yqtran.idx
ydschool.idx   yecureiq.pc    yqcfgtrn.pc    yqscrn.dat     yqtran.pc
ydtran.dat     yortiq.dat     yqhelp.fld     yqscrn.idx

./iq/french:
iqchksum       yqscrn.dat     yqscrn.pc      yqtran.dat     yqtran.pc
yqkwd.dat      yqscrn.idx     yqtext.dat     yqtran.idx

./iq/german:
iqchksum       yecureiq.idx   yqcfgtrn.idx   yqlicens.pc    yqtran.dat
ydmaster.dat   yecureiq.pc    yqcfgtrn.pc    yqprtcfg.dat   yqtran.idx
ydmaster.idx   yortiq.dat     yqconfig.dat   yqscrn.dat     yqtran.pc
ydschool.dat   yortiq.idx     yqkwd.dat      yqscrn.idx
ydschool.idx   yortiq.pc      yqlicens.dat   yqscrn.pc
yecureiq.dat   yqcfgtrn.dat   yqlicens.idx   yqtext.dat

./iq/spanish:
iqchksum       yqkwd.dat      yqscrn.pc      yqtran.idx
ydmaster.dat   yqscrn.dat     yqtext.dat     yqtran.pc
ydmaster.idx   yqscrn.idx     yqtran.dat

setupiq 
=======

setupiq is not distributed since it is used to define Informix and other
Data Bases not supported by Dynamic Concepts, Inc.

UniBasic-IQ release 2 Data Dictionary Upgrade:
==============================================
UniBasic-IQ release 2 data dictionaries are NOT compatible with IQ for UNIX
versions 3 and greater.  Run ddrefmt to upgrade UniBasic-IQ release 2 data 
dictionaries to versions 3 or greater.

IQ release 4 files:
===================
All IQ files, including demo and support files, are stored in the
/usr/lib/iq4 directory.  All executable programs are created as shell 
scripts by the same name in /usr/bin.  All other references to iq3 in the 
current "IQ for UNIX and Windows Installation and Reference Guide" are 
applicable to IQ release 4.

UniBasic-IQ release 3 files:
============================
After upgrading to release 4, UniBasic-IQ release 3 executable programs 
remain in /usr/lib/iq3 directory.  The release 3 shell scripts in 
/usr/bin are replaced with release 4 scripts.  These scripts are 
basically the same, except they run /usr/lib/iq4 executables instead of 
/usr/lib/iq3 executables.

UniBasic-IQ release 2 files:
============================
UniBasic-IQ release 2 executable programs are moved to the /usr/lib/iq2 
directory if they exist.

exportiq
========
Please note that exportiq does not take any command line arguments.  The
-l and the -s options as stated in the "System Manager's Guide" are not 
available.  In addition, exportiq does not reject invalid command line
arguments.

Copyright Notices:
==================
CodeBase is a registered trademark of Sequiter Software, Inc.
c-tree is a registered trademark of FairCom.
FoxPro is a registered trademark of Microsoft Corporation.