
    DBExpert(tm) Relational Database for OS/2 from Sundial Systems
    Release Notes (README.TXT) for DBExpert Version 2.0.9
    August 2000


    Thank you for using DBExpert Version 2.0 for OS/2.  This file contains
    information which became available after the DBExpert User's Guide and 
    Getting Started documents went to press.


    What is Version 2.0.9?

    Version 2.0.9 is a maintenance release of the DBExpert 2.0 series.  In
    general, the features of this version are identical to earlier releases
    within the 2.0 series -- the primary differences are bug fixes, stability
    improvements, and other corrections.

    A few significant changes have been made, however, which may affect your
    use of the product.  These are outlined in the "Changes of Interest to
    All Users" section below.


    IMPORTANT Y2K INFORMATION

    A problem has been found in Versions 2.0.6 and 2.0.7 of DBExpert that
    will affect the display of 2-digit dates once your PC clock rolls over 
    to the year 2000.  The problem has been corrected in Version 2.0.8 and
    higher.


    IMPORTANT INFORMATION IF UPGRADING FROM VERSION 2.0.4 OR EARLIER

    Beginning with Version 2.0.5 of DBExpert, significant changes were made
    in the way dBase-style tables are "saved" when you make updates to the
    definition of the table (via the Table Designer).  These changes may impact
    your use of DBExpert tables with other applications.

    In the past, DBExpert (usually) saved a table into the DBExpert directory
    even if the table was originally in a different directory.  Now, the table
    is saved in its original location.  Further, in the past, the physical
    table file(s) (DBF file and, optionally, DBT and index files) were given a
    new name.  Now, the file names are preserved.

    In general, these changes are for the better.  However, if you are sharing
    these tables with another application, you should consider if this change
    will have any impact on that application or on your use of DBExpert.

    In particular, it was previously possible to "save" a table while it was
    in use by another application (since a new table was actually being 
    created from the old one).  This is no longer possible -- if the table is
    in use (by another application or by another copy of DBExpert), it cannot 
    be saved.

    Also, be aware that changes you make to a table could impact the other
    application -- so we *strongly* recommend that you backup any such tables
    and verify that versions you now save will be properly handled by any 
    other such applications you use on the same tables.

    Further, as discussed below, DBExpert now includes the ability to "pack"
    dBase-style tables to reclaim wasted space.  This packing operation works
    much the same way (under the covers) as a "save" does -- thus all of the
    above considerations apply when you Pack as well as when you Save.

    Finally, for this new save/pack method to work correctly, you must not
    have changed the FileOpenCache setting of the "QEDBF[Q+E dBASEFile (*.dbf)]"
    ODBC driver.  (The default setting is correct -- you may ignore these
    instructions unless you have previously used the ODBCADM program to change
    the default value.)   The value of this setting must be blank or zero.
    If it is not, you will probably get unexpected "Table in use" errors 
    whenever you try to Save a modified table design or Pack a table.  

    (Despite the similar name, do not confuse this setting -- FileOpenCache --
    with the Cache Size setting; the two are unrelated and you may still wish
    to adjust the default Cache Size setting as discussed elsewhere.)


    Documentation Notes

    There have been three printings of the Version 2.0 DBExpert User's Guide
    and Getting Started documents.  The following notes apply to all 
    printings:

    * The DBExpert User's Guide and Getting Started documents use a mix of old
      (DBExpert 1.x) and new (DBExpert 2.x) style names for the various
      different DBExpert functions you can use in queries, forms, and macros.
      The new names are the same as the old names, except that the prefix
      "dbe" has be added to the beginning.  (For example, dbeLoadPicture vs
      LoadPicture.)  

      When working with DBExpert 2.x, the new style names are preferred and
      should be used -- the old style names are primarily retained for
      compatibility with Version 1.x DBExpert applications.  In all cases,
      both names refer to the same actual function and only the new names are
      documented (in Chapter 15 of the User's Guide).

    * Various examples in the User's Guide and in the Getting Started documents
      inconsistently use different types of quote marks to surround strings.
      For example: 'A', `A', and "A".  While either single or double quotes
      can be used, they must be used in matching pairs.  (If you are using 
      DBExpert with DB2, only single quotes may be used in queries due to a
      limitation discussed later.) The "single left quote" (also known as a
      grave accent) shown in the middle example cannot be used (either singly
      or in pairs).

    * In Chapter 18 of the User's Guide, it discusses the need for binding
      DBExpert to any DB2 database you wish to use.  One way to do this is
      with the SQLBIND command shown in the Guide.  Alternatively, you can use
      the Client Setup (on DB2 Version 2) or Client Configuration Assistant
      (on DB2 Universal Server) to bind DBEDB2.BND to the database(s) of your
      choice.  

      No matter how you bind DBExpert to your DB2 database, you may also
      need to specify that the ISO date format be used for date information
      being passed to and from DBExpert.  This is required if the database 
      is configured to use a localized date format (rather than the default).
      See the Limitations section below for more information.

    * It is strongly recommended that you not use SQL keywords as table or
      field names.  While these may be acceptable in some cases, they may not
      be acceptable in others.  This is particularly a problem if you intend
      to move your tables from one database product to another.

      The full list of SQL keywords, including those used only in specific SQL
      dialects, is very long.  One such list will be found in the SQLWORDS.TXT
      file included with this version of DBExpert.

      Some of the more common words included in the list are:

      AND, ANY, BETWEEN, BY, CATALOG, CHECK, COMMENT, COUNT, DAY, DATE,
      DISTINCT, FROM, GRANT, GROUP, HOUR, HOURS, IN, INDEX, KEY, LABEL, LIKE,
      MAX, MIN, MINUTE, MINUTES, MONTH, MONTHS, NAMES, NOT, NULL, OR, ORDER,
      PAGE, PAGES, PART, SECOND, SECONDS, SELECT, SIZE, SUM, TABLE, TIME, 
      UPDATE, VALUE, YEAR, YEARS, ZONE.

    * DBExpert's performance when using dBase-style tables can be greatly
      impacted by the amount of memory devoted to database caching in the
      ODBC drivers.  By default, this amount is only 256K bytes.  Unless your 
      system is both memory and swap space constrained (or you are only using
      very tiny tables), we recommend you increase this amount.

      To change the setting of the database cache size, you must run the
      ODBCADM utility from an OS/2 command line (after switching to the 
      directory where you have DBExpert installed).

      In the ODBCADM main window, select the entry entitled 

        "QEDBF[Q+E dBASEFile (*.dbf)]" 

      and press the Setup button.  In the field labeled Cache Size, enter a
      number larger than the default value of 4.

      The number you enter is the number of 64K buffers the database will use.
      Thus, you must have enough memory and/or swap space to accommodate this
      number.  In most cases, the number 100 (i.e., about 6.4M bytes of cache)
      is a good starting point.  However, if your system is somewhat memory
      constrained (say a 12M to 16M system) this number is probably too high;
      if you have lots of memory (say a 64M or larger system) you could easily
      go higher.  There is, of course, a point of diminishing return.  In most
      cases, this is approximately twice the size of the largest DBF file you
      are using.

      (Do not confuse this setting with the similarly named FileOpenCache
      setting.  For this version of DBExpert to work correctly, the 
      FileOpenCache setting must be set to it's default value of blank 
      or 0.)

      After you make the change, press the OK button in Setup window, and then
      press the Close button in the ODBCADM main window to exit from ODBCADM.
      The change will not take effect as long as DBExpert is running.  Also,
      keep in mind that this change does not affect all DBExpert operations.
      However, you should notice a significant difference in some operations
      (such as moving to the last record of a large table) and/or in some of
      your queries.

    The following notes apply only to the original and second printings of
    the User's Guide and Getting Started documents.  These can be identified
    by the blue triangle on the upper left of the document covers.

    * On page 9-19 of the User's Guide, the example of CharToDate is incorrect
      because it is missing the required second parameter.  It should read:
        < CharToDate("2/5/95","GD")       Date value is before 2/5/95
      or, more properly (using the DBExpert 2.x style function name):
        < dbeCharToDate("2/5/95","GD")    Date value is before 2/5/95

    * On page 11-15 of the User's Guide, the text correctly mentions the use
      of square brackets ([]) to surround field names containing spaces but
      the square brackets are shown as curly brackets ({}) instead.

    * On pages 12-15 and 12-16 of the User's Guide, the examples for
      "repeating instructions while a condition is true" and "repeating
      instructions until a condition becomes true" incorrectly omit the code
      which increments the value.  In both examples, the second SetValue
      statement should be:
        rc = SetValue( 'Count', dbeGet( 'Count' ) + 1 ) )
      or, a bit more properly using only DBExpert 2.x style function names:
        rc = dbeSetValue( 'Count', dbeGet( 'Count' ) + 1 ) )

    * The following functions are not documented in Chapter 15 of the User's
      Guide:

        dbeRunMacro
          Runs a DBExpert macro and returns the value returned by the macro's
          RETURN statement.  You can call this function in expressions to     
          have macros calculate a value to use in an expression.  

          For example, if you have a macro called Format that capitalizes the
          name passed as a parameter, then in a query, you could have a
          calculated column defined as
            NewName: dbeRunMacro( 'Format', name )
          to get the value of the NewName column from the Format macro.

          Parameters:
            macro name - the name of the macro to run
            parameters - the parameter string to pass to the macro

            Note: If the macro requires multiple parameters, these must be
            combined together into a single string that is passed in the
            second parameter of the dbeRunMacro call.  The exact form of the
            string will depend on the way in which the particular macro
            separates (parses) the parameters.

          Returns:
            The value returned by the macro if successful, otherwise 
            '#ERROR n' where n is the error code.

          Example:
            NewName = dbeRunMacro( 'FormatName', Name ) calls the FormatName
            macro to format the value in the Name variable and returns the
            formatted name into the NewName variable.

          C prototype:
            const char* dbeRunMacro( const char* macroName,
                                     const char* parameters )
    
        dbeTruncate -- 2.0.5 or later
          Truncates a number at the specified number of digits past the
          decimal point.  Similar to dbeRound, except no "rounding up" is
          performed.

          Parameters:
            number - the number to truncate
            digits - the number of digits from the decimal point to round to
                     (negative values round to the left of the decimal point)

          Returns:
            Number truncated to digits

          Example:
            dbeTruncate(123.456, 0) returns 123
            dbeTruncate(123.999, 0) returns 123
            dbeTruncate(-123.456, 0) returns -123
            dbeTruncate(123.456, 2) returns 123.45
            dbeTruncate(123.456, -2) returns 100

          C prototype:
            char* dbeTruncate( char* numberString, long digitsPastDecimal )
    
        dbePack -- 2.0.5 or later
          Packs (compresses) the physical table of a dBase-style table (by 
          removing the space occupied by deleted records).  Has no effect
          on tables that are not stored as dBase-style tables.

          Note that the table must not be in use by another copy of DBExpert
          or by another application for the packing operation to be successful.

          Parameters:
            name - name of the table to pack

          Returns:
            0 if successful, otherwise, returns error code

          Example:
            dbePack('MyTable') packs the table named MyTable 

          C prototype:
            long dbePack( char* name )
    
    * Contrary to what is stated on page 15-30 of the User's Guide, the dbeMsg
      function returns the following values:

        dbeMsg 
          Displays a message box with the specified test, title, and style.

          Returns:
            The id of the button the user pressed to dismiss the message box
              1 - OK
              2 - Cancel
              3 - Abort
              4 - Retry
              5 - Ignore
              6 - Yes
              7 - No
              8 - Help
              9 - Enter
             -1 - ERROR


    Changes of Interest to All Users

    * Beginning with Version 2.0.9, an additional tool has been added to
      the toolbar in all windows (such as form and table views) which 
      contain a Find tool.  This new tool, Find Next, appears immediately
      to the right of the Find tool and performs the same function as the
      Edit->Find Next menu selection.

    * Beginning with Version 2.0.9, a new menu option has been added to
      the File menu of the Print Preview window and a corresponding tool
      has been added to the toolbar of the window.  This new option, Print
      And Close, performs the same function as Print but does not return
      to the Preview window after printing.  This option is particularly
      useful when previewing and printing complex reports that take time
      to generate and redisplay.

    * Beginning with Version 2.0.9, a change has been made to what appears
      in the title bar when previewing a report.  Historically, the report
      name was displayed.  To be consistent with the documentation, however,
      this has been changed and the report title is displayed instead unless
      no report title has been specified in the design of the report.

      Since the report title defaults (when creating a report) to being the
      same as the "source" for the report, this may lead to an unexpected 
      title bar display.  To avoid this, you should change the report title
      to the desired title or make it blank.  If you have a large number of
      reports which makes this change impractical in the short term, contact
      Support Services for information about reconfiguring DBExpert to always 
      display the report name as it did in previous versions.
       
    * Beginning with Version 2.0.9, an option has been added to the DBExpert
      command line to allow an application to be opened without running any
      STARTUP macro defined in the application.  This is useful if, for some
      reason, the macro contains an error or other problem which prevents
      the application from being opened correctly.

      To use this option, start DBExpert as follows:

      DBEXPERT -NOSTARTUP appname.dbe

      where appname is the name of the DBExpert Application file (.DBE file)
      that you wish to open.  Alternatively, you can also specify a 
      dash (-) after the name of the macro to start when opening the
      application:

      DBEXPERT appname.dbe -

      Either way, the application will be opened and the STARTUP macro, if
      defined, will not be run.
       
    * Beginning with Version 2.0.8, a new option on the File menu in the main
      DBExpert window allows you to "pack" DBExpert application (.DBE) files.
      The Pack Application option works much the same way on files which contain
      DBExpert applications as the Pack Physical Table option does on files
      which contain dBase tables (.DBF files).

      As you design your DBExpert application and make changes to the various
      forms, queries, macros, and reports you define, parts of the "old" 
      definitions may remain in the application file.  These old definitions
      take up space and make the .DBE file bigger than actually necessary.  
      When the File->Pack Application option is used, these unnecessary 
      definitions are removed and a new, smaller version of the .DBE file is 
      created.  (A backup copy of your original .DBE file is also saved as
      a .DBB file.)  Thus, if you have to make many changes to your application
      over time, packing the application can make the .DBE file much, much,
      smaller and faster to load as well.

      The File->Pack Application option can only be applied to applications
      (.DBE files) that are not open, however.  Thus you cannot pack the
      application you are currently using nor can you pack an application
      that other users might have open on a network.

    * Beginning with Version 2.0.8, the dbeRequeryControl function has been
      extended to support subform controls (in addition to the combo box and 
      listbox controls previously supported).  Thus, you can now use
      dbeRequeryControl to force a subform to redetermine what records should
      be displayed in a subform.

    * Beginning with Version 2.0.8, limitations on WHERE clauses in the Filter
      parameter of the dbeQueryAvg, dbeQueryCount, dbeQueryFirst, dbeQueryLast,
      dbeQueryMax, dbeQueryMin, and dbeQuerySum functions have been removed.
      The limitations sometimes required you to make the WHERE clause more
      complex than apparently necessary.

      Importantly, however, the change also affects the way DBExpert handles
      some queries involving Group By or other "total" functions (such as Count,
      Sum, Average, Minimum, or Maximum) when conditions are applied to columns
      of the query.

      Usually, the difference is unimportant but in rare circumstances it may
      yield a different result than would have been produced by earlier versions
      of DBExpert. In fact, such a query may be permanently changed if you load
      it into the Query Designer and save it (even if you do not make changes
      to it yourself).

      If you find that you are having trouble with any such queries, please
      contact technical support for assistance and for information about 
      configuring Version 2.0.8 to handle such (unmodified) queries as they
      were handled in earlier versions.

    * Beginning with Version 2.0.7, the Enter key (and the keypad Enter key)
      now perform actions on forms.  In general, these keys now move the
      cursor from one field to another in the same way as the Tab key.  On
      a pushbutton, however, these keys "press" the button (rather than move
      to the next field).  Similarly, on a multi-line entry (MLE) text field, 
      these keys do not move to the next field but end the current line of 
      text instead (as they have in earlier versions).  In the case of a
      combo box control, these keys do not move to the next field if the list
      associated with the combo box is currently displayed.

    * Beginning with Version 2.0.7, rows of data from other applications can
      be pasted from the OS/2 clipboard into the spreadsheet view of a table.
      (Previous versions only allowed pasting of rows copied onto the 
      clipboard from within DBExpert itself.)  Each row of data must appear
      as one line with tabs between the fields (as specified by the OS/2
      standard for clipboard text).  

    * Beginning with Version 2.0.6, rows of data copied from a spreadsheet
      view to the clipboard are now placed on the clipboard in text format
      (in addition to the internal format used by DBExpert) using one line
      for each row with tabs between the fields (as specified by the OS/2
      standard for clipboard text).  This allows you to more easily transfer
      data from DBExpert to other applications.

    * Beginning with Version 2.0.6, the use of the dbeShowWarnings function
      has been extended to also apply to the confirmation message that may
      appear when a form is being closed.  If, for example, the form has
      been moved or resized, and dbeShowWarnings(TRUE) has been called, the
      message asking if the form should be saved will not be displayed -- the
      save will be done automatically instead.

    * Beginning with Version 2.0.5, a problem was corrected in the way date
      values were converted after being entered into a field of a table or 
      form.  The correction makes the program conform to what is stated in
      the User's Guide but has the side-effect of breaking an undocumented
      feature of Version 2.0.4 and earlier.  In those earlier versions, it
      was possible to enter a "formatted" date (such as "1997 January 1") and
      have it properly interpreted by the program if the display format for
      the field was set to a matching format (such as "YYYY Mmmm DD" in this
      case).  Such functionality has never been officially supported since,
      as the User's Guide shows on page 16-7, the general date format is 
      always used while a value is being entered/edited.

      We do realize this capability is useful and may support it as an option
      in the future.  In the mean time, if you need compatibility with this
      behavior of earlier versions, please contact Sundial Systems Support
      Services for information about making this version of DBExpert work in
      "Version 2.0.4 Date Entry" compatibility mode.

    * Beginning with Version 2.0.5, a change has been made in the way in which
      parameters are passed to DBExpert macros.  This change allows blanks
      (spaces) to be preserved within parameters and/or blanks to be used to
      delimit parameters (depending on how the macro itself interprets the
      REXX parameter string).  

      Previously, all blanks were removed and all the parameters converted to
      upper case to insure compatibility of macros designed for use with
      DBExpert 1.x.  If you have any remaining DBExpert 1.x macros, you should
      check to make sure they continue to work correctly -- or contact Sundial
      Systems Support Services for information on making this version of
      DBExpert work in "Version 1 Macro" compatibility mode.

    * Beginning with Version 2.0.5, a new dbeTruncate function has been added.
      This function is like dbeRound (and takes the same parameters) but does
      not perform any "rounding up" of the value.

    * Beginning with Version 2.0.5, a change has been made in the way in which
      the dbeInt function treats negative numbers to make the behavior of the
      function more consistent with the generally accepted definition of an
      "integer portion of" function.  This means that negative numbers are now
      "rounded down" rather than "truncated toward zero".  Thus, for example, 
      dbeInt(-4.5) will now return -5 rather than -4 (as it would have done in
      earlier versions).

      This change has no impact on the treatment of positive numbers.  However,
      if you have macros or queries that rely on the older behavior which 
      "truncates" negative numbers, you should use the new dbeTruncate function
      in place of dbeInt.

    * Beginning with Version 2.0.5, additional options (Semicolon and Space) 
      have been added to the Delimiter options which can be selected when
      importing text files into DBExpert.

    * Beginning with Version 2.0.4, a change has been made in the way in which
      dates in the year 2000 and beyond are displayed.  While DBExpert has
      always handled such dates, the "general" date formats (GD and GDT) have
      displayed only the last two digits of the year.  This has been changed
      so that all four digits will be displayed if the year is not between
      1900 and 1999.  If you still wish to display only a two digit year, you
      must use a format string containing 'yy' as discussed in Chapter 16 of
      the User's Guide.

    * Similarly, beginning with Version 2.0.4, a change has been made in the
      way in which times containing fractional seconds are displayed.  The
      "general" time formats (GT and GDT) will now display these values
      whenever they are found.  If you wish to always display times only in
      whole seconds, you must use a format string containing 'ss' as discussed
      in Chapter 16 of the User's Guide.

      Also, please note that the level of support for fractional seconds
      depends on the type of field and the type of database being used.  In
      particular, dBase-style tables support fractional seconds only in
      timestamp fields (not time fields) while other database types support
      fractional seconds in both time and timestamp fields.

    * Beginning with Version 2.0.4, a change has been made in the way in which
      DBExpert recognizes the international configuration settings on your
      system.  Previously, DBExpert determined this information solely based
      on the COUNTRY setting in your CONFIG.SYS file.  Beginning with 2.0.4,
      DBExpert will now override this information based on any changes you
      have made using the Country object in the OS/2 System Setup folder as
      well.  (Changes you make, however, will not take effect while DBExpert
      is running.)

      While there are still some limitations to DBExpert's international
      formatting support, this and other changes that have been made 
      (including corrections included in Version 2.0.5) should improve the
      situation significantly (when compared to earlier DBExpert versions).  

      The primary remaining restriction concerns the use of numbers containing
      "decimal commas" (as opposed to "decimal points" -- 2,9 vs 2.9 for
      example) in SQL statements and related situations.  These include
      numbers typed directly into SQL statements in the SQL Viewer window of
      the query designer, conditions entered in the Field lists of the query
      designer, and WHERE clauses which are parameters to certain DBExpert
      functions such as dbeQueryCount.  In all such cases you must use the 
      "decimal point" representation of the number rather than any
      internationally localized representation which includes a "decimal
      comma."  (The comma confuses the SQL interpreter in these situations.)

      If you encounter other situations where your country settings cause
      problems in DBExpert (or, are not properly reflected in DBExpert), 
      please report them to Sundial Systems Support Services so that they
      may be addressed in a future version.

    * Beginning with Version 2.0.2, a change has been made in the way in
      which text import is handled.  This results in substantially increased
      performance when importing (by as much as a factor of 50).


    Changes of Interest to dBase-style Table Users

    * Be sure to consult the information elsewhere in this document about
      changes beginning in Version 2.0.5 to the way in which table designs
      are saved when using the Table Designer.

    * DBExpert follows the standard conventions for deleting records from
      dBase tables.  This means that the space occupied by these records in 
      the actual DBF file is not recovered -- instead, the file will continue
      to grow as more records are added to the table.  In general, this growth
      will also occur when using DBExpert to simply update the data in the
      table as well.  The growth not only consumes disk space but also affects
      the performance of queries against the table, etc.

      Beginning with Version 2.0.5, DBExpert provides a facility which can be 
      used to reclaim the wasted space by "packing" the table.  To do this,
      highlight the table on the Tables page of the DBExpert main window, then
      select File->Pack Table.  Note that the table must not be in use (by
      DBExpert or any other application) for the packing operation to be
      completed successfully.

      For people that wish to pack tables on a more automated basis (or within
      applications being used with the DBExpert Runtime), a dbePack function
      is also now provided (as explained elsewhere).

      Finally, if you intend to pack tables that are used by applications 
      other than DBExpert, it is recommended that you verify that the packing
      will not adversely affect the other application.  (Make sure you have
      a backup copy of the table and all indices before you attempt the
      packing operation the first time -- contact Sundial Systems Support
      Services if you have questions.)

    * Beginning with Version 2.0.1, a change has been made in what happens
      when attaching dBase-style tables.  The current directory now is set to
      the directory that the table is in so you can attach more than one table
      from the same directory without selecting the directory each time.


    Of Interest to DBExpert Users Upgrading from Version 1

    * When you open forms created with Version 1.x, the menu, VCR buttons, and
      tool bar will not be displayed.  To enable them, switch to design view
      and set the Menu, VCR Buttons, and Tool Bar attributes to Yes and save
      the form.

    * If you have trouble using macros which you created in DBExpert Version 1,
      contact Sundial Systems Support Services for assistance.


    Limitations of Interest to All Users

    * DBExpert may have problems accessing data if you install Lotus SmartSuite
      for OS/2 after installing DBExpert.  This is due to a conflict in the
      versions of the ODBC drivers used by DBExpert and SmartSuite.  Proper
      working of DBExpert can typically be restored by placing the directory
      where DBExpert is installed before the Lotus directories in the OS2 Libpath.
      For further assistance with this issue, contact Support Services.

    * In some cases using dbe() functions with "aggregate" expressions (such
      as SUM or AVG) within footers on reports causes a blank result to be
      displayed.  For example, while
                =SUM(price)
      displays the sum of the price values
                =SUM(dbeInt(price))
      displays only a blank field (rather than the sum of the integer portion
      of the prices).

      This restriction may be removed in a future version but to workaround
      the problem, add a non-visible field to the detail section of the report
      and use this field to calculate the expression.  For example, create
      a non-visible field named "dollars" and set the source to be 
                =dbeInt(price)
      Then, in the footer, use a simple expression to calculate the aggregate
      based on the non-visible field:
                =SUM(dollars)

    * If you change the order of the fields in the ORDER BY clause of an SQL
      statement while viewing the SQL statement in the Query Designer, this
      change may not be reflected in the query design once you close the
      viewer.  In general, DBExpert currently requires that the order of
      the fields in the ORDER BY statement be the same as the order those
      same fields appear (if they appear) in the SELECT portion of the
      statement.  This is the same order as they appear left-to-right in
      the column windows of the query designer.  This restriction may be
      removed in a future version.

    * If you choose to use the Default Value attribute for a field in a table
      or on a form, the value you enter must be an actual value -- use of an 
      expression or macro call is not allowed.  This restriction may be eased 
      in a future version.

    * While horizontal scrollbars can be included on a DBExpert form, they can
      not actually be used to scroll the form.  (Vertical scrollbars, however,
      do work.)  We plan to address this problem in a future version.

    * When using the vertical scroll bar on a spreadsheet (table) view or a 
      form, the scroll bar "thumb" may temporarily "paint" part of itself above
      the top (or below the bottom) of the scroll bar in some circumstances. 
      The problem is strictly cosmetic in nature and does not affect the 
      operation of the program or the scrollbar.  However, we are aware that
      it can be disturbing and hope to correct the problem in a future version.

    * In general, if you run multiple copies of DBExpert, you may not be able
      to access your data (or run macros) from the second and subsequent
      copies once you close the first copy.  (On the other hand, there is not
      a problem if you close any copy other than the first copy.)  The only
      workaround is to close and reopen all running copies of DBExpert.  We
      hope to address this limitation in a future update.

    * Contrary to a statement in Chapter 6 of the User's Guide, the CTRL key
      cannot be used in connection with the left mouse button to select 
      multiple rows in the spreadsheet view of a table (or query).  This may 
      be addressed in a future version.

    * There is a limitation on the use of dbeLoadPicture (also known as
      LoadPicture) when used to load an image onto a form from a disk file (as
      outlined in Chapter 10 of the User's Guide).  The picture will only be
      loaded if there is a source query or table associated with the form
      (even though the picture is not coming from the database).  This
      situation typically arises on forms being used as the initial form for 
      an application.  As a workaround, for pictures on forms without a source
      table/query, place the dbeLoadPicture call (inside a dbeSetValue call)
      in the After Current event for the form as a whole.  For example:

        =dbeSetValue('picturefield',dbeLoadPicture('logo.bmp')).

    * Contrary to the discussion in Chapter 11 of the User's Guide, DBExpert
      2.0.x does not support the use of List Box or Combo Box controls on
      reports.  This will be addressed by a future update.

    * Contrary to the statement and examples on in Chapter 16 of the User's Guide,
      DBExpert does not currently support the use of "e+" or "e-" to format
      numbers in scientific notation.  This will be addressed by a future 
      update.
     
    * In general, setting the background color for elements of a report does
      not produce the desired result -- the elements will have a white
      background regardless of the color settings in the report definition.
      (Foreground color settings, such as the text color, do work correctly,
      however.)  We hope to address this issue in a future version.

    * When printing some reports that have multiple data groupings, an extra
      page without any actual data (only headers and/or footers) may appear at
      the beginning or end of the report (depending on the page break options
      selected).  There currently is no workaround for this problem but we hope
      to address it in a future version.

    * When printing some reports (typically those with controls which can grow
      to contain more data), it may not be possible to print selected pages
      unless the selection begins with page 1.  For instance, if you request
      that only pages 3 through 5 be printed, some or all of what would have
      appeared on page 1 appears on page 3 instead.  There is currently no
      workaround for this problem but we hope to address it in a future version.

    * If you try to create a report on an OS/2 system which has no default 
      print queue, you will not be able to create the report.  There is no
      workaround but we hope to address this problem in a future update.

    * On occasion, cut, copy, and/or paste operations in DBExpert may stop
      working.  The only solution is to close and reopen DBExpert.  We are
      continuing to try to identify the source of this problem and hope to
      have it corrected in a future version.

    * While an application created with DBExpert can be copied (or moved) from
      one system to another, in general, it must be placed on the same disk 
      drive and in the same directory on the target system as it was in on the
      original system.  (This also means that it is impractical to move a 
      DBExpert application from one disk to another on the same system.) This
      limitation will be addressed in a future version.

      If, however, you do copy or move a DBExpert application to a different
      drive or directory, you can generally get the application working once
      again by using the File -> Change Physical Table option to change the
      location (i.e., drive and directory) of each dBase-style table which
      moved along with the application.

    * When an application created with DBExpert is copied (or moved) from one 
      system to another, any reports in the application expect to be able
      to find the same OS/2 printer (by name) as they were originally defined
      for.  

      If no such printer is found, then the report will become associated with
      the default printer on that system and any printer-dependent attributes
      of the report (such as landscape-vs-portrait printing) will be reset to
      the default values for the new printer.

      If the same printer is found, then print job characteristics which were
      saved with the report will be passed to the printer on the new system.
      Usually this is not a problem.  However some OS/2 printer drivers do not
      cope well if the information saved by one version of the driver is 
      passed to another version of the same driver.

      The only work around is to change the printer associated with the report
      to some other printer, change it back to the desired printer, and then
      the printer-dependent aspects of the report.

    * If you move DBExpert from one directory (or disk) to another, you most
      likely will not be able to access your existing DBExpert data (unless
      you are using only DB2 tables).  To solve the problem, you need to
      perform the following steps but ONLY if you are not using ODBC drivers
      in connection with other products (in which case you should contact
      Sundial Systems Support Services for assistance).

      In your OS/2 directory, you should find two files named ODBC.INI and
      ODBCINST.INI.  (If you cannot find the files, contact technical support.)
      
      Rename the two files (or move them to a safe place in case you need 
      them later).

      Reinstall DBExpert over the copy you have in the new directory.  This 
      will not affect any of your existing DBExpert applications or files
      (with the exception that any changes you have made to the Sample 
      application will be undone).

      Verify that new copies of the ODBC.INI and ODBCINST.INI files have 
      appeared in your OS/2 directory and that you can now access your 
      existing DBExpert data.  (If not, contact Support Services.)


    Limitations of Interest to Users of dBase-style Tables

    * DBExpert cannot be used to access dBase tables which are stored in files
      where the base part of the filename is longer than 8 characters.  The
      only workaround is to rename the file to a conventional "8.3" format
      name (using .DBF for the extension).  This is likely to be a permanent
      restriction.

    * DBExpert cannot be used to access dBase tables which are stored in a
      directory where the name of the directory, or any parent directory,
      contains a space in the name.  The only workaround is to move the
      file(s) containing the table to a different directory.  We hope to
      address this limitation in a future update.

    * As noted above, dBase tables do not support fractional seconds in time
      fields (though they are supported in timestamp fields).  If you enter
      fractional seconds in a dBase time field, they may appear on the screen
      to have been accepted as part of the value.  However, they will not be 
      stored in the database and will be discarded when you close (or    
      refresh) the table or form.

    * For the version of DBEQ.DLL included in this version to work correctly,
      the DBEXPERT directory MUST appear in the LIBPATH statement in your
      CONFIG.SYS file.  Ordinarily, this addition should have been made by the
      DBExpert installation program.  However, some earlier versions of the
      installation program did not make the change.  Thus, after installing
      this version, we recommend that you check your CONFIG.SYS file if you
      find you cannot attach or access dBase tables in other directories.

 
    Limitations of Interest to DB2 Users

    The following known issues may arise when using this version of DBExpert
    (or any earlier 2.0.x version) with any version of DB2:

    * If DB2 is not properly installed and operational, DBExpert will trap
      if you try to access a DB2 database or table.

    * In general, it is strongly recommended that you be logged on with your
      DB2 User ID before trying to access DB2 through DBExpert.  Failing to do
      so may cause DBExpert and the UPM logon to jointly hang the system.  We
      are continuing to try to determine the cause of this problem.

    * When creating expressions which involve string constants (such as ='NY'
      or LIKE('SM%') ), be sure to use single (not double) quote marks.  This
      is due to the fact that DB2 does not recognize string constants that
      are surrounded by double quotes.  We hope to be able to handle this
      conversion automatically in some future version.

    * The current method DBExpert uses to import data from a non-DB2 source
      into a DB2 table, or to change the structure of an existing DB2 table,
      can result in very large transactions when the volume of data being
      imported or converted is large.  This may result in a transaction that
      is larger than DB2 can fit in its uncommitted transaction logs.  In
      general, the total size of the data being converted, together with
      index information on that data, must be able to fit in the transaction
      log.  You can reduce the required space by importing/converting to
      tables which do not have indices defined on them (and then add the
      indices later).  You may also find it necessary to increase the log file
      space used by DB2 for uncommitted transactions.

      To do this on DB2 Universal Server using the DB2 Control Center, select
      the database you are using and then use the Configure option on the
      Selected menu (or the Configure option on the popup menu for the
      database) to reach the settings notebook.  On the Logs page, select the
      Log File Size entry (if is not already selected) and adjust the value of
      Log File Size to a higher value than the default.  Alternatively, you can
      also do this by using the DB2 Command Line Processor and the UPDATE
      DATABASE CONFIGURATION command to set the LOGFILESIZ parameter for the
      database.

      To do this on DB2 Version 2 using the DB2 Database Director, select the
      database you are using and then use the Selected option on the Configure
      menu to reach the settings notebook.  On the Log Files page, set the
      value of Log File Size to a higher value than the default.
      Alternatively, you can also do this by using the DB2 Command Line
      Processor and the UPDATE DATABASE CONFIGURATION command to set the
      LOGFILESIZE parameter for the database.

      To do this on DB2 Version 1 using the DB2 CONFIG program, select the
      database you are using, and then, using the Change Database option on
      the Configure menu, change the LogFileSize parameter to a larger number.

    The following known issues may arise when using this version of DBExpert
    (or any earlier 2.0.x version) with DB2 Universal Server:

    * The originally distributed version of DB2 Universal Server Version 6.1
      fails to install one of the DLL files needed by DBExpert (and some other
      applications) to communicate with DB2.  The name of this file is 
      SQLA32.DLL and it is contained on the DB2 Universal Server distribution
      media in packed form as SQLA32.DL_.

      DBExpert requires that a copy of SQLA32.DLL be found somewhere in the
      OS/2 Libpath.  Typically, it is placed in DB2's \SQLLIB\DLL directory.
      To workaround the problem, you need to find a copy of SQLA32.DLL from
      virtually any DB2 version (such as from 5.1) or you need to unpack the
      copy found on the DB2 Universal Server CD.  Once you have the file, 
      simply place it in that directory or any other directory in the OS/2
      Libpath. If you need assistance with this, contact Support Services.

    The following known issues may arise when using this version of DBExpert
    (or any earlier 2.0.x version) with DB2 Version 2 or DB2 Universal Server:

    * The current method used by DBExpert for locking records in DB2 causes
      the lock to be held for the entire time a user is editing a row within
      the spreadsheet view of a table (or the fields of a row on a form).
      This will cause other users to be locked out of access to that row (and
      possibly adjacent rows) for unacceptably long periods of time unless you
      configure DB2 Version 2 or DB2 Universal Server to enable lock timeouts.

      To do this on DB2 Universal Server using the DB2 Control Center, select
      the database you are using and then use the Configure option on the
      Selected menu (or the Configure option on the popup menu for the
      database) to reach the settings notebook.  On the Applications page,
      select the Lock Timeout entry (scrolling the entry into view if
      necessary).  Uncheck the None option if it is checked and and set the the
      Lock Timeout value to a small number (such as 2; the value is in
      seconds).  Alternatively, you can also do this by using the DB2 Command
      Line Processor and the UPDATE DATABASE CONFIGURATION command to set the
      LOCKTIMEOUT parameter for the database.

      To do this on DB2 Version 2 using the DB2 Database Director, select the
      database of interest and use the Selected option on the Configure menu to
      reach the settings notebook.  On the Locks page, select the Time option
      and set the timeout value to a small number (such as 2; the value is in
      seconds).  Alternatively, you can also do this by using the DB2 Command
      Line Processor and the UPDATE DATABASE CONFIGURATION command to set the
      LOCKTIMEOUT parameter for the database.

    * There is a known issue with mixed case column and table names that can be
      created in DB2.  Currently, these cannot be properly accessed with
      DBExpert.  There is no workaround but we plan to address the issue in a
      future update.

    * There is a known issue with column and table names created in DB2 that
      contain non-English alphabetic characters.  Currently, these cannot be
      properly accessed with DBExpert.  There is no workaround but we plan to
      address the issue in a future update.

    * There is a known problem with displaying DB2 date fields in DBExpert
      when localized DB2 date formats are being used.  If the default date
      format for a database is set to one of these formats, you must bind
      DBExpert to the database using ISO date format.  To do this, use the
      following alternate form of the BIND command (rather than that shown on
      page 18-3 of the User's Guide):

        SQLBIND DBEDB2.BND database_name DATETIME ISO

      Alternatively, you may also use the DB2 Command Line Processor (on any
      DB2 version) or Client Setup (on DB2 Version 2) or Client Configuration
      Assistant (on DB2 Universal Server) to bind DBEDB2.BND using the ISO date
      and time format.

    * There is a known issue which sometimes affects the ability of DBExpert
      to access DB2 properly.  If you have performed the SQL bind statement as
      outlined in Chapter 18 of the User's Guide, and have granted the
      necessary privileges as outlined on the next few pages, but get an
      error about "package CHRIS.DBEDB2 not being found" when trying to access
      your data, try using an alternative form of the GRANT statement to
      correct the problem.  In this form, the statement is the same as that
      shown, for your version of DB2, in the User's Guide except that
      "CHRIS.DBEDB2" is substituted for "DBEDB2".  For instance, in the case
      of DB2/2, rather than

        GRANT EXECUTE, BIND ON PROGRAM DBEDB2 TO PUBLIC

      use

        GRANT EXECUTE, BIND ON PROGRAM CHRIS.DBEDB2 TO PUBLIC

    * If you install DB2 on your workstation after installing DBExpert, you 
      may not be able to run DBExpert or access your data.  This is due to a 
      confusion which arises between the DB2 ODBC drivers and the DBExpert 
      ODBC drivers (even though neither is used by DBExpert to access DB2).
      To correct the problem, you must edit your CONFIG.SYS file and modify 
      the LIBPATH statement so that the DBEXPERT directory (the directory 
      where you have DBEXPERT installed) comes before the SQLLIB\DLL 
      directory.


    The Legal Fine Print

    The terms and conditions of your DBExpert License apply to the software
    and documentation accompanying this file.

    DBExpert is a trademark of Designer Software, Inc., and is used by Sundial
    Systems Corporation under license.

    Other phrases used herein may be brand names, trademarks, or registered
    trademarks of Apple Computer, Inc., Borland International, Inc., Computer
    Associates International, Inc., Designer Software, Inc., International
    Business Machines Corporation, Intersolv Corporation, Microsoft   
    Corporation, Novell, Inc., Oracle Corporation, Sundial Systems
    Corporation, or others.  All such names and trademarks remain the 
    property of their respective companies.


    Technical Support

    We at Sundial Systems are committed to supporting you, our customer.

    We track all questions, comments, and "bug reports" concerning our
    products and use this information in planning future releases.  If
    there are features you particularly like or things you think should
    be added to our products, please let us know.

    If you have questions or suggestions, the most effective way to contact
    us is by email to dbexpert@sundialsystems.com.

    You can also visit us on the web at www.sundialsystems.com where you 
    will find information about DBExpert as well as other members of the 
    Sundial Systems family of OS/2 products.  That's also the best place to 
    find out about updates and other enhancements as they become available.

    You can also call us at (562) 596-5121 between 9:00 AM and 4:30 PM 
    Pacific time, Monday through Friday.  We can't guarantee the immediate
    availability of support personnel at all times, but all calls are handled
    as quickly as possible.  You can also FAX your questions and comments to
    us at (562) 596-7825 at any time.

    Thanks in advance,
    Sundial Systems Support Services.
