Omnis 7 version 3 Release Notes

May 27, 1994

These version 3 release notes include notes and cautions for version 2 for reference.

Omnis 7 version 2.2

Connects Interface

Describe table (Columns) fails when you connect to an ORACLE7 server using the ODBC connect with the Q+E ORACLE driver on Windows.  This is a problem with the ODBC driver.  (V2/@B/009FC)

Using the O7DAL connect, fetching an AS/400 date value into an Omnis Date (#FDT) corrupts the value; fetching into an Omnis Short Date works fine.  (V2/@D/229FC)

Using the O7DAL connect with the AS/400,  sys(134) (number of rows processed) is incorrect after inserts and updates. After an insert of one row, sys(134) may be any of several values not equal to 1. After an update of one row, sys(134) is 0.  (V2/@D/231FC)

When using the SQL Server connect on the Macintosh, you must set memory to at least 6000, or the system crashes.  You must increase the memory if you are using the VCS.  See the Installation and Update manual section on the SQL Server connect for details.  (V2/SH/280FC)

File formats

If you change the case of File format names and the name of the associated data file slot, Omnis creates a new slot for that format.  If you then delete the new slot and try to rename the old slot, you will get the message "That name is in use".  This is correct, since there is always a slot for the file format; once you delete the slot, Omnis recreates it automatically.  Try renaming the slot BEFORE you rename the file format.  (V2/FF/307FC)

The Shell

When no libraries are open in the Shell Format Browser, Omnis appears to freeze when you try to build a library.  You can, however, continue working by opening another library from the file menu, which makes the Design menu available again.  On Windows, Omnis builds the library successfully, but the Macintosh version of Omnis does not.  (V2/SH/330FC)

On the Macintosh, if you use a slash (/) in an Omnis folder name, the Shell may not be able to create library files in that folder.  You should generally avoid slashes in folder names, as this may have unpredictable effects in Omnis and many other software packages. (V2/SH/326FC)

If you exhaust the space for the transaction log in SYBASE while using the Shell to create a library in the VCS, Omnis freezes.  Make sure your transaction log is large enough to accommodate VCS transactions.  (V2/SH/313FC)

If you use spaces in a file name on the Macintosh and try to browse the file with the Shell File Browser, you will get a "Badly coded SQL statement" error.  Use underscores in the file name to avoid this message.  (V2/SH/256FC)

When you copy file formats between libraries in the Shell, it copies them in alphabetical order.  If you have Omnis file connections between the files, Omnis can lose the connections.  (V2/SH/276FC)

You cannot display protected formats in the Shell Format Browser on the Macintosh.  You can use the built-in environment to see these formats. (V2/SH/294FC)

If you enter the Shell by clicking on the Shell icon on the Macintosh, the shell does not display the folder triangles.  (V2/SH/283FC)

When you change the status of a format using the Assign Format Privilege window, the Shell does not update the status icon until you exit the VCS.  (V2/SH/301FC)

You cannot use COMMAND-R to run a report from design mode if you are using the Shell.  (V2/SH/262FC)

If you check out or copy formats in the VCS on the Macintosh, using Deselect leaves one format selected.  (V2/SH/322FC)

If you use the Utilities>>Library Tool>>Copy menu item when in the Shell on the Macintosh, you get the error message "Cannot load format. Too many formats have been altered and not saved"  if you copy more than 40 at once.  (V2/UT/260FC)



Omnis 7 version 2.1

Ad hoc reports

Ad hoc reports where the file name includes a space, such as a file named 'Format One', causes the report to lose field names; these appear as '#???'. (V2/AH/266)

Calling Button procedures

When you convert a version 1 application to version 2.x, Omnis adds an If #CLICK...End If statement to all procedures behind Pushbuttons and Button areas. However, where Omnis once called these procedures in the original application, calling them will no longer work as it no longer generates the #CLICK.  The If #CLICK will fail and the procedure will not run.  (V2/CO/310)

Combo boxes and Notation

Omnis does not properly set the $text attribute for combo boxes. For example, if the list calculation for a combo box is #L2/jst(' ',1,#S2,10), then $topwind.$objs.#L2.$text returns an empty item. (V2/NT/283FC)

$width does not work with combo boxes.  Altering its value has no effect. (V2/EL/255FC)

con() and fld() functions

Omnis 7 version 1 users should note that version 2 changes the con() and fld() functions subtly. For example, if you use the con and fld functions as follows, Omnis returns what could be a misleading value in the TEST format variable:

	Format variable TEST (Character)

	Calculate TEST as 'This is a test...'

	Calculate #S1 as con(fld('TEST'),'Add some more')

After running this procedure, TEST holds the value 'This is a test...Add some more.', instead of just 'This is a test', as you might expect.  (V2/FU/221)

Connects Interface

The Start connect command returns misleading error messages when the associated client software DLLs are missing. (V2/@A/289FC)

<SQLMESSAGE> and <SQLERROR> do not behave correctly in a multi-library environment.  The parameter of these keywords is a format name that must also be upper case only.  Because these handlers are global, if Omnis raises an error in a different library, it will still call the handler. However, it will refer to the current library, which may not have the format. (V2/@Y/227FC)

Under certain circumstances, Omnis is not properly inserting field information with the updatenames() function. If you issue the SQL and shortcut function calls, the resulting text in the SQL buffer is incorrect. (V2/@C/274FC)

The Describe table (Columns) command is not correctly reporting the NULL or NOT NULL information of a column in a table. (V2/@D/219FC)

Omnis is unable to fetch SYBASE BIT informaton into a Boolean field. (V2/@D/221FC)

After executing the Describe results and a Build list from select table commands, Omnis returns 0 when using the DAL connect with ADSP to SYBASE on the VAX.  The workaround to this problem is to replace 'select, describe results, fetch' type logic with 'select, fetch, describe results' logic. (V2/@D/208FC)

Using PL/SQL with the ORACLE7 connect, you can send Picture fields to the server, but you cannot retrieve them using PL/SQL.

With the Rdb connect, the /N modifier in createnames(field1/N) does not work; this is a limitation of Rdb. However, the /NN modifier works. (V2/@R/011FC)

With the Rdb connect, the REAL data type on the server gets mapped to Number 0 DP in Omnis when issuing the Describe table and Describe results commands.  Therefore, after using Make file format from table, fetching the REAL values drops any digits after the decimal point. (V2/@R/012FC)

Converting Omnis 5 applications

An application you convert from Omnis 5 to Omnis 7 version 2 loses its font table if it is not the default font table--for example, if you have changed the default font. The only workaround is to rebuild the font table in the converted application or, if possible, to convert the application first using Omnis 7 version 1, then to convert to version 2.  (V2/GE/730)

Date formats

Version 2.0 had a cross-platform compatibility problem with the date formats table.  To correct this in version 2.1, we have changed the size of this table.   To use user-defined date formats in version 2.1, you will need to reenter your formats using the change date formats dialog.

An additional consequence of this change is that the date format table now converts correctly from version 1 application files.

Debugger

The debug windows display some warnings that you can safely ignore.  For example, you can ignore the warnings LocalAlloc failed, Loadstring() failed, and Invalid global handle. (V2/WI/448FC)

Drag and Drop

When you drag an object on a window that you have vertically scrolled, the drop outline appears a number of inches above the hand icon, usually by the amount you have scrolled the window. The drop outline should always appear directly under the hand icon.  (V2/DD/250FC)

Text disappears from a drag field under the following conditions. You enter the drag field and select the text to drag. You drag the text and set the current field to the drop field using the SNA set current field command.  When you click on the drag field, the original text disappears.  The workaround is to do the following calculation in the drop field:

Calculate [#DRAGREF.$fieldname] as #DRAGREF.$contents

(V2/DD/251)

Icons on the Macintosh

The Macintosh Installer can in some cases place icons on top of each other. To arrange them better, you may want to use the 'Clean Up Window' option.  (V2/TK/277FC)

Importing and Exporting

CAUTION: There are problems importing WKS and SLK files. (V2/IE/304 & V2/IE/305)

CAUTION: There are problems importing dBase files that Omnis has exported using the dBase format. (V2/IE/306)

Internal Names and SQL

CAUTION: Internal names of libraries and data files that include spaces are causing problems with SQL. Therefore, you should avoid putting spaces in library and data file names. (V2/*E/018FC)

Lists

In certain circumstances, Omnis does not correctly report double-clicks on a list. For example, double-clicking on an unselected line only generates a #CLICK. (V2/LT/278FC)

Locking Libraries and Protecting formats

Note that even when you lock a library, programmers can still change and save formats. For example, when and if Omnis enters the debugger due to a problem with a particular format, the user can change and save the format. Programmers can also copy formats in and out of a locked library.

If you want to lock a library effectively, you must protect each format in the library, as well as locking the library.  (V2/NT/273FC)

Omnis Notation

[file_name].$vals.[a_field_number] does not work if file_name is identical to a field name in a different file; for example, another_file_name. Omnis returns an [empty] value.  The workaround is to use a longer notation string such as $files.[file_name].$vals.[a_field_number].  (V2/NT/279FC)

It is not possible to move a group of procedures using the notation. (V2/NT/278FC)

Using the notation $formatdata, even to read a format, marks the format as changed.  You must use the Save format command to purge the format from the internal Omnis cache of modified formats.  Otherwise, Omnis reports "Too many formats have been altered and not saved" after you read a number of formats.  A side-effect of this problem is that Omnis changes all library variables to #???. In this case, closing and re-opening the library restores the library variables.  (V2/GE/738FC)

Searches and reversible blocks

When there is no current search and you use the Set search name command in a reversible block, Omnis does not revert back to no selection as you might expect. When the procedure terminates, the search you select in the reversible block remains the current search. (V2/PC/775)



Omnis 7 version 2

Ad hoc Reports

Ad hoc reports do not support the printing of pictures as a background object. You can use an Omnis picture field. Use a Report format if you need background pictures on a report. 

Apple Events

CAUTION: On the Macintosh, Apple Events that query or change attributes of the Desktop Folder will cause the Macintosh to crash. Examples are:

Send Finder Event (Get Info ('HD:Desktop Folder:'))

Send Finder Event (Shared Files ('HD:Desktop Folder:'))

Connects

Field names take precedence over file names. To override the precedence rule, use $files.filename or library.filename. (V2/@A/248FC)

Sys(130) does not return just the name of the connect. It returns the string: OmnisSQL[release version (release date)]. The server('Connect') function returns the name of the connect. (V2/@M/231)

Keyword error messages are actually error messages for their corresponding commands. (V2/KY/218FC)

OmnisSQL does not implement the SQL command Execute Procedure. (V2/@M/006)

OmnisSQL defaults to the current data file. There is no way in this release to change the data file through SQL. Use the command Set current data file instead. (V2/@M/012)

When using the OmnisSQL connect to query data in another library, all the column names have to include the complete notation; for example, LIBRARY.TABLE.COLUMN. The SQLTOOLS library works with multiple libraries and contains many examples of the complete notation required.

CAUTION: The 07EDA connect on the Macintosh has a memory leak that causes it to lose 150K of memory per start or quit. (V2/@C/248FC)

CAUTION: When using the ORACLE2 connect, Omnis may lock up if the ORACLE host is down when you logon.

When launching Omnis following a General Protection Fault using the SQL Server connect, logon fails.  Quit Windows and start again. (V2/@Y/216FC)

Debugger

To use Debug Next Event more effectively, turn off mouse event trapping; otherwise every movement of the mouse becomes an event, leading to an endless event cycle. Calculate LibraryName.$prefs.$mouseevents as kFalse. (V2/DB/024FC)

Display Fields

You cannot drag display objects, as they never receive the focus. The workaround is to trap for #MouseEnter and #Hold, and when this is true, calculate the field type as enterable.  

There is no predefined constant for a display field. Use the constant kEntry and calculate $display as kTrue. (V2/NT/238)

Externals

GetFldVal() called with fmt_cstring takes a buffer length parameter that does NOT include a final NULL.  This means that the buffer you use must be at least one byte longer than the data you have asked for, since Omnis will add the terminating Null character.

Functions

The function jst(#T, 'T:H:N A') does not correctly display the AM/PM portion of the string. The workaround is to calculate #FT as 'H:N A'. (V2/FU/216FC)

General

When you view an Omnis 7 version 1.x data file from the Data File utility, Omnis returns the file size as 'n/a'. There is nothing wrong, it's just an old data file type that you need to convert to Version 2.1.

Omnis generates an 'Error - cannot load format' message when you create more than 79  formats through the notation and don't save them. Omnis can only handle 80 formats in memory at a time and cannot purge unsaved formats automatically. The workaround is to save the library before reaching 80 formats. (V2/FF/298)

If Omnis finds a version 1 Help file in the path when searching for the Version 2.x Help file, it will use the version 1 file but will run more slowly. (V2/DC/245)

When you select 'Save a copy as' from the File menu, Omnis presents an error message to the user if there are multiple users logged into a library file. (V2/GE/651)

External Areas now receive additional events. Their field procedures should explicitly check for each pertinent event. (V2/CO/304)

Lists

You cannot define lists with a field of type Item Reference. (V2/LT/254)

Omnis does not allow the definition of lists with indirection such as Define List {[MyDefinition]}, where MyDefinition holds a correctly formatted string. This is correct behavior.  The Omnis Reference 2 manual gives a complete description of the use of square bracket notation. (V2/NT/232FC)

List fields now get #AFTER events. This may cause compatibility problems with converted applications that do not have test for #CLICK or #DCLICK commands. (V2/LT/251FC)

The $makelist() notation always creates an undefined list, and it is advisable to use $appendlist() to avoid this problem. The Redefine list command will only redefine a list that has some columns of data.  You have to trap the case where $makelist() results in an empty list.

When closing a library and leaving the current list set to a non-hash variable in that library, then trying to use the current list without setting it in another library causes Omnis to quit. A simple workaround and good programming practice is to set the current list at the start of the block of code that uses it. (V2/LT/263)

When you define a list using File format fields from another library, Omnis only checks for the existence of the File format. It does not check for the existence of the fields within the specified File formats. (V2/LT/258)

Notation

Omnis does not allow negative $width attributes. It interprets negative $height values as height in number of lines. (V2/NT/254FC)

Omnis saves changes to $head only if you issue a Save format command or save or close the window design screen. (V2/NT/253)

Procedure Execution

Calculate is not reversible when it causes notational changes. The workaround is to avoid reversible blocks and explicitly code the item back to its original state. (V2/PC/729FC)

CAUTION: The Set search as calculation command does not work with converted applications unless you specifically convert data to the Version 2.x format. (V2/PC/747FC)

Reports

Windows platform only:

If you use one printer driver for more than one port, only the first definition appears in the Omnis printer list. (V2/PR/423)

Tables

In design mode, the entry box for the list field name in the table definition attribute palette incorrectly labels itself as 'Name:' rather than 'List Name'. (V2/EL/242)

When you move the mouse up and down a single column of a table, the field corresponding to the column does not receive #MouseEnter and #MouseLeave. This is correct behavior, as you have not changed fields at this point. (V2/EM/203)

Buttons you place in the header of a non-enterable table do not receive the #CLICK event. (V2/TA/207FC)

Utilities

Copying a large number of formats into a new library may cause the system to hang. (V2/UT/254)


