If you are upgrading from version 3.x to 4.0 of Xtrieve, make sure that you get (at no charge) 4.0a. The upgrade utility, UPGRADE.EXE was not working correctly in some situations.
If you are upgrading your Xtrieve make sure all previous versions of Xtrieve and its associated files (XTRIEVE.CNF, XTRIEVE.MSG, XTRIEVE.HLP, etc) are deleted or at least moved to another directory. Also check to make sure that your DOS PATH or DOS SET functions are set appropriately.
You cannot merge *.DDF files that are stored in different directories. The easiest way to accomplish this task is to use the MAKE_XTA utility to extract a file's definition. Use the XCFP utility to convert the extracted file into a command file (*.XTC). Then use the COMMAND/PLAY option and Xtrieve will perform the actions necessary to add that file's definition to the current dictionary.
Xtrieve may not display a full screen (19 lines) of records if the total number of bytes in a view exceeds the default value of 1024. Increasing the /W parameter when loading Xtrieve allows a larger view to be displayed.
Xtrieve Problems Patched in Version 4.01a
Currently there are 24 patches noted on NETWIRE for Xtrieve. The following is a list of the noted problems:
Receive error 227 defining a restriction when defining conditional field or restriction on a view. This will only happen when you define a condition which involves two fields, not a field and a constant.
The option "File" appears at the bottom of the Main Menu but when you select it, Xtrieve asks for the command to RUN.
Some field default values are not being displayed
as defaults when adding values for a field which is in the View /EDIT/ADD.
EDIT/ADD (aborted) followed by:
DICTIONARY/ATTRIBUTES/FILENAME/FIELDNAME/DEFAULT can display garbage when you type in a value or type ENTER.
If you translate a view to SDF (or DIF), and your view contains non-numeric fields (STRING) and the value for the non-numeric is nul (""), when you try to translate from that file back into Xtrieve, your machine may lock up.
If you receive an error when adding, or modifying, records you are placed at the first record in the file, instead of at the record which caused the error.
When XTRIEVE runs out of internal buffer space, it displays the error: "Drive not ready," make sure disk is in drive and drive door is closed." This message is incorrect; it should be "No buffer space available."
"Unable to add a field to view, status = 207" after selecting a field to add to the current view.
The cursor is not visible in the entry window immediately after Xtrieve encounters a PROMPT key when replaying a command file.
Translate to SDF or DIF places invalid characters (ie: , - $) in translate file.
Xtrieve Tutorial Lesson1 gets error 204 adding a field to a view. Lesson2 incorrectly returns an error when joining a file to a view.
After `Installing Security' regardless of SWITCHES selected in Security, the Configure Option remains on the Main Menu Selection for all users.
Add Security to Dictionary with READ-ONLY options to a file. When trying to EDIT/MODIFY that READ-ONLY file, the system may hang.
Add Security with a User's rights for file level as Write access but READ-ONLY level for some fields within that file. Issuing EDIT/MODIFY can hang the system.
If all fields in a view are Titled all Field Options are disabled except for ADD.
Xtrieve is not remembering security privileges for a user at the file level.
Reorganizing a file can return a "no buffer space" message, display garbage on the screen, and lock up the system.
Translating in a date, time or logical field from an SDF file can result in varied data.
Xtrieve Restrict uses the `contains' condition when the `not like' condition is selected.
If the number of available fields for a view is > 255 (or a Join results in the > 255 fields condition) Xtrieve will not let you select any of the fields from the file that first generates this >255 condition.
When replaying a command file with a command file menu at the end the error `Directory Contains No Matching Files' is erroneously displayed.
System may hang OR garbage is being returned on the screen when defining the default value for logical field.
Translate an integer value to SDF format will save the value followed by a decimal point. This format is different than previous versions.
A user has Write access at the file level, the field level rights for that user on the same file will be incorrectly set to READ-ONLY access.
NETWIRE also includes some optional patches for Xtrieve in a file named BUGS.401 (available after you unarc either XTP401.ARC or XPAT01.ARC).
Two of these patches are listed below.
This patch is to force Xtrieve to unload XQLP and BTRIEVE, provided they are loaded when Xtrieve terminates.
The first "e" command forces Xtrieve to unload XQLP, and the second one forces BTRIEVE to be unloaded.
At the DOS prompt, type the following:
from last report line prompt (when adding or modifying page footings) drops you into the Main MENU/REPORT Option instead of backing out.
A report which is positioned as the first item on a line, with an absolute line position and a relative column position will appear correct when SHOWING the report, but when printing, the item will appear on the form too many characters to the right. Any other items on that line which are column relative to that item will also be off by the same amount.
Sometimes a field cannot be repositioned on a report layout.
A math overflow produced by a division by zero within the report option will dump you to the DOS prompt w/ "math overflow" message.
Translate to 123 via Report Option can cause system to hang if group summary value is calculated.
If a field in a Report is modified, then repositioned, and that position results in an error, your current position is now inaccurate.
Report 123 Option subtracts one day from date field translated.
`Invalid Dimensions' error is returned from the Report Option in error.
"Error -1" when recalling a report in the report option.
Xtrieve UTILITIES:
Make_Xta
MAKE_XTA may not place the mask for a field in a layout when generating the XTA file for the layout.
User-defined summaries are not placed correctly in XTA file.
System may hang while "extracting supplemental index definitions .." using the MAKE_XTA /F feature.
XCFP
Not recognizing various Dot (.) commands when converting from XTA to XTC and XTC to XTA.
XCFP creates its .xta or .xtc files without an extension if you specify an output file " XCFP test.xta test".
XMENU
Modify menu position does not reposition item correctly.
UPGRADE
In upgrading command files from version 3.02 to 4.01, if your command file selected * for the fields, the newly created command files is not created correctly returning a `command file contains an invalid keystroke'.
Upgrading command files from Xtrieve 3.x to 4.x using a date in the restrict portion of a view may not replay with correct value.
Xtrieve NON-PATCHABLE
Master User can define a user whose name contains spaces but cannot change that users rights.
A print of a layout definition, followed by the printing (to any output) of a report will return "unable to write to specified device".
Upgrading command files from Xtrieve 3.x to 4.x using a date in the restrict portion of a view may not replay with correct value.
Translating TIME/DATE/LOGICAL fields to DIF and back will return inconsistent results.
XQLP Problems Patched in Version 2.01a
Currently there are 12 patches noted on NETWIRE for XQLP.
The following is a list of the noted problems:
Remove all W/XTRIEVE is not working correctly in all situations.
XRESTRICT optimization did not set up index definition correctly if optimization could not occur. On XRECALL the error #250 is returned.
Null records can be returned if the file is joined over 2 or more segments AND the primary fields for the join are in different files.
An external index is not created if all segments of the specified XORDER had different ascending/descending order than defined to the dictionary.
Leading blanks can be stripped in a restrict or computed string constant.
XQLFETCH with a waited lock can return a status 43 instead of status 9.
Commit or abort transaction is not releasing all views if multiple cursor id's are used.
XUSER and XACCESS return error 201 when using xqlptrbo/xqlpgen/xqlpdict.
XQLPO hangs when loading in DOS 2.1 environment.
XQLP will not allow more than one user to invoke security at a time when using BREQUEST/BSERVER.
XQLP returns records based on a RESTRICT on a decimal or numeric field whose values are >-1 or <0 even if the restriction is not met.
XQLP returns different records from a self-join when using the Btrieve /VAP.
XQLP: NON-PATCHABLE
Problems can occur with optimization of a view based on current restriction.
if the SORT is on a key other than the key in the restriction.
If a Where restrict clause with two or more operands usesthe same field and has the same initialized value.
Not all records are returned if an alternate collating sequence is involved in optimized restriction.
XRESTRICT was trying to optimize based on an external sort.
A browse of a field that is defined as a float w/ a mask and a large exponential value can hang the system.
If buffer space is exceeded on a call to XDESCRIBE to fetch the current restriction, XQLP can hang the system.
REMOVE ALL on a self-joined view does not remove all records from the secondary file. This is not allowed pending a new status code.
XQLP was not correctly calculating user-defined date fields when date was = 00/00/00.
XQLP is inconsistent in the format necessary for a money data type in the insert mode vs the update mode.
Lstring constant "aaa a" is truncated to "aaa" if the field length is 5.
XQLP cannot be loaded on top of BMULTI.
A status 330 is returned if a conditional field is defined containing a decimal point but the datatype is not decimal.
NETWARE SQL
Currently there are 13 patches noted on NETWIRE for NETWARE SQL.
The following is a list of the noted problems.
NETWARE SQL BUGS
Patches #1 - #7 are already installed on NETWARE SQL v2.01a.
Patches #1 - #13 are already installed on NETWARE SQL v2.01b.
Unless noted, all patches apply to the NETWARE SQL VAP -
NW$SQL.VP0.
Hardware used as a server may initialized memory with a special character combination. This will result status 2103 or 503 on the workstation. If it is necessary to apply this patch, then the BSERVER.VAP must have a corresponding patch applied from Btrieve patch file. Also, you must use the copy of the BROUTER.VAP file included with this set of patches.
The SELECT clause will not accept integer constants in the statement.
Example:
The statement `SELECT fld1, 10 from ' returns the status `Field does not exist in the dictionary.'
The NOT IN phrase does not return the correct data if used with a correlated subquery SELECT statement and no records are returned by the subquery statement.
Example:
SELECT * from WHERE NOT
IN
The XTRIEVE Remove All and Update All menu choices will not work correctly with the NETWARE SQL VAP if the view contains a restriction. No records will be processedand the reject counter will be incremented indefinitely.
The dictionary may become inconsistent if a file is dropped from the dictionary while other users are accessing the same dictionary.
When NETWARE SQL is installed on the released version of NETWARE 2.15, the server locks up when an attempt is made to enter a console command.
If a constant value for a restriction is greater than 20 bytes, NETWARE SQL will cause a GPI on the server.
Variables in the SET clause of an UPDATE statement are not substituted correctly.
When using an SQL statement to update a numeric field that has a range attribute set, the server will GPI.
If the message buffers for NETWARE SQL and the NETWARE SQL Requester are the same size, NETWARE SQL will cause a GPI if the amount of data requested exceeds the message buffer size.
If an application calls XQLCOMPILE to set up a view, then calls XUPDATE to update the data, status 228 is returned. Patch #12 must also be applied against NSREQ.EXE to fix this problem.
NSREQ.EXE
If an application calls XQLCOMPILE to set up a view, then calls XUPDATE to update the data, status 228 is returned. Patch #11 must also be applied against NW$SQL.VP0 to fix this problem.
The sort order is saved incorrectly in a stored view if the sort was changed to descending and then reset to ascending before the view was stored.
NETWARE SQL NON-PATCHABLE:
If an attempt is made to recall a view from VIEW.DDF and that view definition is corrupted the databuffer length may not be set correctly and could cause the server to GPI.
When issuing an UPDATE with a correlated sub-query in the WHERE clause all records in the main file were not updated correctly.
If multiple cursors are used to define views within a transaction with both the first and second cursors reference the same file a status 78 is returned.
Workaround available.
Error condition should be, but is not noted, when one user attempts to modify a dictionary definition for a file in use by another user.
If more than one variable is used in a WHERE or UPDATE clause then part of the restriction may by ignored.
XQLM
Currently there are 4 patches noted on NETWIRE for XQLM. The following is a list of the noted problems:
You are allowed to CREATE TABLE with a keyword as a field name. The resulting file is not created properly.
A status 206 (max cursors) is being returned on an update within a subquery.
A query using the NOT IN clause with a subquery does not return any records.
SELECT statement will not work with INTEGER constants in the field list.
XQLM NON-PATCHABLE:
Select statements with ALIAS names can be stored but not recalled.
XQLM SUM or AVG of 8 byte floats not adding digits to the right of the decimal field correctly due to conversion routines.
Create table statement not including the "with index" can return the incorrect message.
If a computed field heading (from a recalled view) is used in a WHERE/ORDERBY or GROUPBY clause, the system may hang.
Workaround: Use the position number of the field, not its name.
Select statement with a conditional field causes a `divide overflow' when the viewname is in the From clause.
Workaround: Store the conditional field with the view.
If a subquery does not return any records a status 324 (unmatched parenthesis) is returned.
ORDER BY clause is not stored with the view when the CREATE VIEW statement contains a subquery.
If a restriction is placed before the JOIN information the WHERE clause may do Cartesian product join.
Workaround: Place Join information before restriction.
If an SQL SELECT contains more than one variable name in the WHERE clause using one XQLSUBSTITUTE call for each variable name will return status 227 or 221 on XQLEXEC.
Workaround: Make one XQLSUBT call for all variable names.
Results not correct for computed fields in a correlated subquery.
XQLM subquery statements do not catch all syntax errors at compile time.
On insert if last field is a large NOTE field the system may hang. (Example was NOTE len 1000)
XQLM is ignoring the sort order on a key field if both a `ORDER BY' and `GROUP BY' select statement is defined.
A new error message is added to denote that a larger /W parameter is needed to perform an ALTER TABLE if the new record size is larger than the default XQLP was loaded with.
ALTER TABLE by adding a integer (2) returns error 850.
System can hang if ICOUNT value passed is less than the actual ICOUNT used.
Novell Development Products Division
#917 P. O. Box 9802
Austin, Texas 78766-9947