Skip to content

User Error Messages

User Errors List

See Also: Finding Specific Errors

Overview

This section lists all user errors in numeric order.

The user errors are those in the error number range of 11-4096 and are stored in the FlexErrs.dat database table.

User Error Types

Operator Errors

The most common error is a simple mistake by a person who is running a program. DataFlex handles many operator errors directly and gives you the capacity for providing additional checks where required.

Most of these errors, unlike the other runtime errors, do not call for any corrections in program code or system setup. The most correction that is likely to be needed is operator instruction in those cases where the error message itself is not sufficient for the purpose.

Program Code Limitations

Designing a program necessarily involves specifying limits on the application's capacities. Examples of these limits are:

  • Maximum number of records in a file
  • Field lengths
  • Window lengths
  • I/O Channel numbers

Frequently, program code limitation errors are triggered by errors on the part of the operator, such as entering a number that is too large by mistake. In such cases, the resultant overflow error serves as an automatic form of range verification.

If the capacities are not specified thoughtfully, they may hamper the purposes the program was designed to serve. If field sizes must be changed (or new fields added, making the record larger) after there is data in the table, the table definition may still be changed using Database Builder.

Programming Errors

In any program, it is possible to use commands that are syntactically correct but which make no sense or cause errors when the program is run. These are generally cases where the operation of a command is not fully understood or is applied improperly.

It may be necessary to debug programming code to determine the state of the program while it is running. Still, the most important step is to read the documentation carefully and review the sample programs provided. Due to DataFlex's great flexibility, programming errors can appear to be other types of errors.

Data Consistency

Data consistency errors are those caused by improper operation of the application and its failure to do the checks necessary to guarantee data consistency. An example of this would be the deletion of a customer record while there are still transactions for that customer record in another database table related to the customer table.

In transactional environments, it is necessary to prevent the user from deleting such records. A related error is allowing the user to change a key field of an active record. Note that in some applications, it is normal and acceptable to have "null" relationships, so the application must check for this condition.

The DataFlex Database Explorer can be a valuable tool for inspecting database tables and diagnosing data problems. Once a problem is uncovered, a check should be put into the application to prevent it from happening again. Data consistency is usually at issue when reports have incorrect totals or data entry screens show the "wrong" records related.

Error List

11 - Number too large for field allocation

Cause

  1. This is usually caused by the operator entering too large a number in a data entry object (DEO).
  2. Numeric database field is not big enough to hold the required value.

Resolution

  1. The operator needs to enter a value within the bounds of the numeric database field.
  2. You may have to change the file definition to allow the field to hold a larger number.

12 - Window number out of range

Cause

This should only occur in legacy code using images, such as a BasicReport.

  1. This is usually caused by improper use of window indexing. For example, if an image named Body only has 10 image windows, moving a value to Body.11 will trigger this error.
  2. Also caused by more than 241 indicators used in a program.

Resolution

  1. Recount your windows or debug into the windowing loop to determine the index value (image window being addressed) when this error occurs.
  2. Reduce the number of indicators in use. In most cases, an indicator can easily be replaced with a boolean variable.

13 - An entry is required on this window

Cause

Operator attempted forward navigation (tab) past a DEO where an entry is required or to save a record without entering data in a required DEO.

Resolution

Enter valid data into the DEO in question.

14 - Please enter a number

Cause

Entry of letters ("O", lower case "L", etc.) in a numeric-typed DEO.

Resolution

Only enter numbers into a window of numeric type.

15 - Invalid entry for this window

Cause

Entry does not conform to simple validation in DataDictionary (field value_check property).

Some means for determining what values are acceptable should be provided for the operator (prompt object, combo form, custom status message).

Resolution

Enter valid data into the DEO in question.

16 - Please enter a valid date

Cause

Entry of an improper date format or value.

Resolution

Make sure you enter a valid date. The date you enter must be valid in the format used by your Windows Regional settings and/or application settings.

Example

Entering 122401 into a date window with US Regional Settings (mm/dd/yyyy) would be converted into the valid (US) date 12/24/2001 (month 12, day 24, year 2001).

However, entering 12/24/01 into a date window when your Windows Regional settings are set to European standard settings (dd/mm/yyyy) would be converted into the invalid (European) date 12/24/2001 (day 12, month 24, year 2001), and trigger this error.

17 - Numeric entry is out of range

Cause

Entry does not conform to range specified in DataDictionary (field value_range property).

Some means for determining what range is acceptable should be provided for the operator (prompt object, combo form, custom status message).

Resolution

Enter valid data into the DEO in question.

18 - Can't open system communications file

Cause

DataFlex cannot establish multi-user operating system communications. Check your installation notes for information relating to your particular operating system.

This error is fatal.

20 - Read error on index file

Cause

  1. Corrupted index file.
  2. This error may indicate problems with the operating systems directory structure of the disk drive. Power failure is a common cause of disk directory corruption. If you have had other media errors, they can show up later as directory problems. If this happens repeatedly, there may be a subtle problem with the operating system or equipment.

This error is fatal.

Resolution

  1. Reindexing is usually sufficient to resolve this problem.
  2. Generally, the disk should be reformatted and data recovery techniques used. Usually, database tables triggering this error are irrecoverably damaged. Restoring data from a good backup is the best recovery method.
    Verify proper configuration of Read Caching and Opportunistic Locking on your network.

21 - Write error on index file

Cause

  1. Corrupted index file.
  2. This error may indicate problems with the operating systems directory structure of the disk drive. Power failure is a common cause of disk directory corruption. If you have had other media errors, they can show up later as directory problems. If this happens repeatedly, there may be a subtle problem with the operating system or equipment.
  3. Can also be caused by a disk full condition.

This error is fatal.

Resolution

  1. Reindexing is usually sufficient to resolve this problem.
  2. Generally, the disk should be reformatted and data recovery techniques used. Usually, database tables triggering this error are irrecoverably damaged. Restoring data from a good backup is the best recovery method.
    Verify proper configuration of Read Caching and Opportunistic Locking on your network.
  3. Make more disk space available.

22 - Index file damaged

Cause

  1. Corrupted index file.
  2. This error may indicate problems with the operating systems directory structure of the disk drive. Power failure is a common cause of disk directory corruption. If you have had other media errors, they can show up later as directory problems. If this happens repeatedly, there may be a subtle problem with the operating system or equipment.

This error is fatal.

Resolution

  1. Reindexing is usually sufficient to resolve this problem.
  2. Generally, the disk should be reformatted and data recovery techniques used. Usually, database tables triggering this error are irrecoverably damaged. Restoring data from a good backup is the best recovery method.
    Verify proper configuration of Read Caching and Opportunistic Locking on your network.

23 - Index file full, exceeds defined size

Cause

In Database Builder, you can specify the maximum number of records that can be in a database table. If this number is greatly exceeded, this error will be triggered.

Resolution

To fix this, open the table in Database Builder and increase the maximum number of records. You will then have to rebuild all indexes for the table.

24 - Can't CHAIN while LOCKs in effect

Cause

The chain command was executed after a lock or reread command without an unlock command having first been executed.

25 - Record not found

Cause

Find errors find or reread command was unsuccessful. To determine what the problem is, check the value of the record buffer or DataDictionary value (field_current_value) in the debugger directly before the find.

Be conscious of the record number, which, if included in the index (RECNUM field), must be part of the key for a "find EQ".

26 - Can't close index file

Cause

  1. Corrupted index file.
  2. This error may indicate problems with the operating systems directory structure of the disk drive. Power failure is a common cause of disk directory corruption. If you have had other media errors, they can show up later as directory problems. If this happens repeatedly, there may be a subtle problem with the operating system or equipment.

This error is fatal.

Resolution

  1. Reindexing is usually sufficient to resolve this problem.
  2. Generally, the disk should be reformatted and data recovery techniques used. Usually, database tables triggering this error are irrecoverably damaged. Restoring data from a good backup is the best recovery method.
    Verify proper configuration of Read Caching and Opportunistic Locking on your network.

27 - File location out of range

Cause

This error is sent when a sequential positioning statement is issued that places the file pointer outside of the in-memory buffer range. This error is used with image and DBMS devices.

28 - Duplicate records not allowed in file

Cause

An attempt was made to save a record whose values in (uniquely) indexed fields match the values of a record already in the table. Where an index containing multiple matching entries is in fact desired, this is a programming error.

A save was attempted on a record having an index key value that matches one already in the index. If unexplainable, try reindexing the file. Where the application in fact requires unique values, this is an operator error.

29 - Text field too long

Cause

This error is sent when a write is performed to a sequential file of DBMS or image type and the write causes the sequential buffer to fill.

30 - Can't read configuration file

Cause

The compiled program file is not a compiled DataFlex program or the file is damaged.

Resolution

Re-precompile all header files by selecting Precompile All Packages from the Tools menu of the Studio.

Recompile your application.

31 - Program file not found

Cause

  1. Attempt to execute a program that does not exist.
  2. Error in a runprogram or chain command.
  3. Attempt to execute a program file that is not a valid DataFlex program.
  4. Program file could be corrupt.
  5. Attempt to execute a program file that was compiled in an earlier version of DataFlex.

This error is fatal.

Resolution

  1. Check the path to and name of the program.
  2. Check the path to and name of the program in the chain or runprogram statement.
  3. Execute the program using the proper method.
  4. Recompile the program.
  5. Recompile the program in the current version or install the DataFlex runtime for the version in which the program to be executed was compiled.

32 - Can't open output file

Cause

  1. The disk is full or the file name is invalid.
  2. An invalid file name or path.
  3. An invalid syntax used with the direct_output or append_output commands.
  4. Output is attempted to a device that has not been opened (e.g. using Write, WriteLn, WriteHtml).

Resolution

  1. Ensure that enough space is free on the target disk drive for the file.
  2. Verify that you are using a valid file name. Valid file names and paths are any that are valid in the Windows operating system.
  3. See the documentation for direct_output or append_output and verify the syntax.
  4. Make sure you open an output device before attempting to write to it.

This can sometimes be tricky in a Web application. See the example below:

Example

In the sample code below, in a cWebReport object, the 2 "send WriteHtml .." lines will generate errors. This is because the DoRunReport message in the cWebReport class opens and closes output devices and channels for output to the web browser using WriteHtml xxx messages. Before and after DoRunReport is executed at the class level (via "forward send") the output channels used by the report are closed.

Function DoRunReport Returns integer
    integer iStat
    Send WriteHtml "Start" // will generate an error
    Forward Get DoRunReport to iStat // this opens channel, runs, and closes channel
    Send WriteHtml "End"  // will generate an error
End_Function

33 - Can't open input file

Cause

The device named in a direct_input command is not defined in your system, or the file named is not present on the drive, folder, or search path.

34 - Not a valid DataFlex program

Cause

This error occurs when the DataFlex runtime (dfrun.exe) is directed to execute a non-DataFlex program file. This can occur because of a faulty runprogram or chain command, but is most likely to be the result of folder file naming or renaming errors entirely outside of DataFlex.

Resolution

Check your folder for files with the extension .exe which are not compiled DataFlex program files.

36 - Too many resident images for memory

Cause

This should only occur in legacy code using images, such as a BasicReport.

Image windows in your program consume memory. Images with the resident option consume an amount of memory equal to their actual size in bytes (up to about 2,000 each). If you get this error, you must reduce either the number of windows in your program (consider separating it into multiple programs), the number of images using the resident option, and/or the size of such images. This error is most likely to be reported at compile time.

37 - Error reading virtual memory file

Cause

This error occurs when a read error is issued while DataFlex is attempting to retrieve information that has been swapped to disk. This error should not happen and is an indication of a larger system problem.

38 - Error reading .exe file

Cause

This error could occur if there is an error while reading the .exe file from disk.

Resolution

Recompile the program or copy the compiled program file from a location (e.g. development PC) where no such error occurs.

39 - Error in system flush file

Cause

This error is sent when there is an error initializing or writing to a virtual swap file.

  1. Disk is full.
  2. The value of the TMP and/or TEMP environment variables specify an invalid path.
  3. This error is sometimes caused by using up of system resources, such as file handles.

Resolution

  1. Make more disk space available.
  2. Verify and correct the values of the TMP and TEMP environment variables.
  3. Increase available file handles (Windows should handle this automatically).

40 - Invalid accelerator key destination

Cause

This error occurs when an accelerator key is pressed where the object to receive the message is invalid (not created yet, name misspelled, etc.). This is most likely caused by an incorrect On_Key statement in the program source.

41 - Find prior to beginning of table

Cause

This error occurs if an attempt was made to find a previous record (find LT) when there is no previous record available, such as trying to execute a "find LT" when there is no record in the DataDictionary or record buffer, or when the first record is in the DataDictionary or record buffer.

Example

If the cursor is in a Customer Number form and no Customer record is loaded, trying to execute a "find previous" or "find LT" will trigger this error since there is no record prior to zero.

42 - Find past end of table

Cause

This error occurs if an attempt was made to find a next record (find GT) when there is no previous record available, such as trying to execute a "find GT" when the last record is in the DataDictionary or record buffer.

Example

If the cursor is in a Customer Number form and the last Customer record is loaded (by the Customer Number index), trying to execute a "find next" or "find GT" will trigger this error since there is no record following the last record.

43 - Can't open index file

Cause

In the embedded (DataFlex) database, the index information is kept in a separate file from the actual database. The index files have the same root name as the table itself, with a .K?? extension, where "??" is the index number. These files must reside on the same drive as the table (see error 75).

This error is fatal.

44 - Channel number out of bounds

Cause

Channel numbers specified in sequential read, write, open, and close commands must lie in the range 0 - 9. This error is reported when the channel number lies outside this range. If you are using a variable to store the channel number, use the Debugger to see its value when this error is triggered.

45 - Illegal operation on device

Cause

This error is caused when an invalid operation is performed on a sequential device. For example, a device may not be opened for output or appending.

51 - Bad format in expression (operand)

Cause

The expression evaluator runs across an improper argument when it is expecting an argument. Most expression errors are not reported until runtime.

If unexplainable, you may have a data consistency error.

Example

(1+*2).

52 - Bad format of expression (operator)

Cause

The expression evaluator runs across an improper operator (+, -, *, or /) when it is expecting a function.

53 - Function not supported in this O/S

Cause

The program contains a command (such as runprogram wait) which is not supported in the operating system you are running on.

54 - Invalid symbol in expression

Cause

If a keyboard entry to a number variable or database field contains non-numeric characters, this error will be triggered. This error is also triggered when data substituted into a comparison includes a number and a non-number (e.g., if ("ham" >= 7)...). The error is caused not by the type of the variable(s) or field(s), but by the type of the data itself (i.e., if ("ham" >= "7")... would not cause the error).

Example

Move (Integer()) To i

This sample is missing the parameter for the integer function. The correct version might look like this:

Number nAmount
Move (Integer(nAmount)) To i

Example

String sName
Number nSin
Move "joe" To sName
Move (Sin(sName)) To nSin

A string is not a valid parameter for the sin() function.

55 - Invalid data type in expression

Cause

Certain data types (strings, and windows without parentheses around them, indicators, labels), are not allowed in expressions. This error reports the presence of such terms in expressions. Most errors of this type will be reported first at compile time.

56 - Attempt to run uncompiled expression

Cause

  1. The compiler compiles expressions for type. If an expression generates an error at compile time (see errors 50, 54, 55, 57, 58, 59), it will not be compiled. If the compiled program is run without correction of the problem and recompilation, the uncompiled expression will generate this error at runtime.

  2. When in strict evaluation mode, an error is raised when the runtime attempts to evaluate an expression within a string that occurs outside of a code-managed Eval() function. When this happens, an unhandled error 56 is raised, "attempt to run uncompiled expression". Assuming that someone is not trying to hack your Web Application, this is most likely a programming error.

Resolution

  1. Recompile your application.
  2. Review the code and adjust it for strict evaluation mode. See Get_StrictEval for details.

57 - Required message argument missing

Cause

  1. Not all required arguments were sent to a message.
  2. The compiler maintains a "stack" which it uses to type all expressions. Too many terms and/or too many terms of different types in an expression can trigger this error.

Resolution

  1. Send all required arguments to the message in question.

Example

Function DoCalcDifference integer i1 integer i2 returns Integer
    Function_Return (i1 - i2)
End_Function   // DoCalcDifference

Procedure OnClick
    integer i1 i2 i3
    move 20 to i1
    move 10 to i2
    get DoCalcDifference i1 to i3
    send Info_Box i3 "Difference:"
End_Procedure // OnClick

In the above code, only i1 is sent to the function DoCalcDifference, but that function requires 2 arguments to be sent to it. In the corrected code below, both i1 and i2, 2 arguments, are sent to DoCalcDifference.

Function DoCalcDifference integer i1 integer i2 returns Integer
    Function_Return (i1 - i2)
End_Function   // DoCalcDifference

Procedure OnClick
    integer i1 i2 i3
    move 20 to i1
    move 10 to i2
    get DoCalcDifference i1 i2 to i3
    send Info_Box i3 "Difference:"
End_Procedure // OnClick

You can write functions that require a variable number of arguments, using the Num_Arguments predefined variable.

  1. To overcome this error, "build up" your final expression through two or more actual lines of code (commands). Most errors of this type will be reported first at compile time.

58 - More than 25 (parentheses) in expression

Cause

This error is generated when more than 25 pairs of parentheses are used in one expression.

Resolution

To overcome this error, "build up" your final expression through two or more actual lines of code (statements). Most errors of this type will be reported first at compile time.

59 - Floating point exception error

Cause

This error occurs when an expression evaluates to a value outside the range of DataFlex Real numbers (1 times 10 to the 306 power).

60 - Bad or missing .DEF file

Cause

A make_file command was executed which used a root name in its argument for which either no .DEF file was found, or if a .DEF file was found, it was not in the required format for such files.

61 - Illegal redefinition of existing table

Cause

A make_file command was executed which had in its argument the number of an existing database file and: (a) the file root name in the command argument didn't match the one in the definition of the database file whose number was used; or (b) the database file whose number was given has data in it and the lengths, types, or total length of the fields in the definition of that database file do not match those in the .DEF file whose root name was used in the command.

62 - .TAG file error

Cause

A make_file command was executed which used a root name in its argument for which either no .TAG file was found, or if a .TAG file was found, it was not in the required format for such files.

63 - Attempt to delete a protected record

Cause

  1. An attempt was made to delete a record in a table set to read-only by the DF_File_Mode attribute.
  2. An attempt was made to delete a record in a table flagged as read-only by the operating system.

Caution: On some operating systems, copying files from a CD-ROM device to a hard disk may set files to read only automatically.

  1. An attempt was made to delete a record in a table where the user running the DataFlex program only has read permissions.

64 - Attempt to Find a protected record

Cause

A find was attempted in a table with its DF_File_Mode attribute set to DF_FILEMODE_NO_FINDS.

65 - Attempt to create in a protected table

Cause

  1. An attempt was made to save a new record in a table set to read-only by the DF_File_Mode attribute.
  2. An attempt was made to save a new record in a table flagged as read-only by the operating system.

Caution: On some operating systems, copying files from a CD-ROM device to a hard disk may set files to read only automatically.

  1. An attempt was made to save a new record in a table where the user running the DataFlex program only has read permissions.
  2. An attempt was made to save a new record in a table currently open in exclusive mode by another DataFlex program (e.g. Database Builder).

66 - Attempt to edit a protected record

Cause

  1. An attempt was made to save an existing record in a table set to read-only by the DF_File_Mode attribute.
  2. An attempt was made to save an existing record in a table flagged as read-only by the operating system.

Caution: On some operating systems, copying files from a CD-ROM device to a hard disk may set files to read only automatically.

  1. An attempt was made to save an existing record in a table where the user running the DataFlex program only has read permissions.
  2. An attempt was made to save an existing record in a table currently open in exclusive mode by another DataFlex program (e.g. Database Builder).

67 - Array too large

Cause

This error is used when an accelerator key has been pressed and the destination object is not defined. This may happen because of invalid object references in access methods.

68 - Can't create item

Cause

  1. This error is used when an entry_item, item, or item_list statement is used in an object or class that does not support the creation of entry_items, items, or item_lists.
  2. If there is a memory error during the creation of an entry_item, item, or item_list statement, then the error will be issued.

69 - Unresolved object reference

Cause

This error is used when a message is sent from an object that does not exist, or an object that uses an access method that does not apply to it.

70 - Not a current embedded database table

Cause

  1. Database tables (.dat files) created under revisions of DataFlex prior to 2.3 (2.2 and earlier) cannot be used under DataFlex without conversion by the DFConver utility.
  2. A corrupted database table.

Resolution

  1. Run DFConver on all your database tables (.dat files) before attempting to use them with DataFlex. The DFConver utility was supplied with DataFlex 2.3 but can be obtained separately from the Data Access Corporation Web Site or by contacting Data Access Corporation.
  2. Restore the affected table from backup.

71 - No record in memory to delete

Cause

A delete was attempted on a record that does not exist, or with no record in memory.

If a delete command is issued against an INACTIVE record buffer, the DBMS won't know what record to delete and will report error 71. Delete must be used with a "found" record.

72 - Table not open

Cause

  1. If a database table is referenced before it has been opened, you will get error 72.

Example

String sState
Move Customer.State to sState
open Customer

The Customer table must be opened before referencing it:

String sState
open Customer
Move Customer.State to sState
  1. A program attempts to open a table before a workspace has been opened.
  2. The table in question was closed in the application prior to the line of code referencing the table in question.
  3. This error can be caused by a missing "set Main_DD" statement in a dbList object (typically) or other component.
  4. This can also be caused by a table not being on the disk, in which case you should get an error 75 first.
  5. A declare_datafile command can allow a program that references a table to be compiled without opening the table. This is sometimes done when the table is expected to be opened in another part of the program.

This error is fatal.

Resolution

  1. Open the database table before referencing it in the code.
  2. This typically happens if the table is opened prior to the cApplication object being created. If this happens, the DataPath and FilelistPath specified in the workspace (.WS) file has not been read yet, and instead the program is looking to open the first filelist.cfg it finds along the default DFPath for DataFlex in the Windows Registry (under HKey_Local_Machine\Software\Data Access Worldwide\DataFlex\X.x\Defaults, where X.x is the DataFlex revision).

To correct this condition, ensure that you do not attempt to open a table until the correct workspace has been opened.

If no cApplication object exists in your program and you want your program to use a workspace, add one and make sure that it is declared before opening any database tables.

  1. Reopen the database table or debug/eliminate the line of code that closes it.
  2. Place a "set Main_DD to" statement into the component or set the Main DDO using the Database Selector DDO Tree button in the Studio.
  3. Make sure the table is on the disk and accessible.
  4. Replace the declare_datafile command with an open command, or make sure another part of the program opens the file before its first reference in the program.

73 - Utility can't find .exe file

74 - Entry does not exist in filelist.cfg

Cause

  1. There is no filelist entry for the database table referenced by the open command.
  2. Filelist.cfg is not found.
  3. A program attempts to open a table before a workspace has been opened.

This error is fatal.

Resolution

  1. This error is often the result of a .FD file used when the application was compiled being out of sync with the actual number used for the table in question in the current filelist. In that case, recreating the .FD files in question from Database Builder and then recompiling the application will solve the problem. Alternatively, the current filelist entry may be moved to the filelist slot referenced in the .FD file used at compile time.
  2. Check the Filelist= statement in the workspace (.WS) file for the application to make sure it points to the correct filelist.
  3. This typically happens if the table is opened prior to the cApplication object being created. If this happens, the DataPath and FilelistPath specified in the workspace (.WS) file have not been read yet, and instead the program is looking to open the first filelist.cfg it finds along the default DFPath for DataFlex in the Windows Registry (under HKey_Local_Machine\Software\Data Access Worldwide\DataFlex\X.x\Defaults, where X.x is the DataFlex revision).

To correct this condition, ensure that you do not attempt to open a table until the correct workspace has been opened.

If no cApplication object exists in your program and you want your program to use a workspace, add one and make sure that it is declared before opening any database tables.

75 - Can't open table

Cause

  1. There is no filelist entry for the database table referenced by the open command.
  2. The TableName has .DAT appended to it in the open statement.
  3. The root name entry in filelist.cfg has an incorrect extension.
  4. The database table is corrupted.
  5. An 'open as' is performed when the receiving table number is zero (0), and the named table is not in the current filelist.

For example:

Handle hTable
Move 0 to hTable
Open "Employee" as hTable

In the above example, if Employee is not in the current filelist, it will trigger error 75.

This error is fatal.

Resolution

  1. Make sure that the root name in File Definition corresponds with the actual name and drive of the table as shown in your workspace's data path.
  2. Make sure the open statement does not have .DAT appended to the TableName. Consult the Open command for more information.
  3. If the table is an embedded (DataFlex) database table, the extension for root name in the filelist entry should be none (e.g., "Customer").

If the table is of another database, the filelist entry should have a .INT extension (e.g., "Customer.INT"). There may be other valid filelist entries depending on the type of database you are using.

  1. Generally, the disk should be reformatted and data recovery techniques used. Restoring data from a good backup is the best recovery method.
  2. Make sure the table you are 'opening as' is in the current filelist, or that the handle you are moving it to is not zero (0).
    Verify proper configuration of Read Caching and Opportunistic Locking on your network.

76 - Internal Huffman error

Cause

This error indicates corruption in an embedded (DataFlex) database compressed data (.VLD) file.

Resolution

Generally, the disk should be reformatted and data recovery techniques used. Usually, database tables triggering this error are irrecoverably damaged. Restoring data from a good backup is the best recovery method.
Verify proper configuration of Read Caching and Opportunistic Locking on your network.

77 - Field number out of range

Cause

  1. This is generated by addressing a field number that is not in the current range of fields in the table. For example, if the table definition of the Customer table has 10 fields, you cannot access field 12.
  2. This can also be caused by using an old program with a modified table definition.

Resolution

  1. Address a field that is within the correct range.

Example

integer iType
get_attribute DF_FIELD_TYPE of Customer.File_Number 20 to iType

The sample above is attempting to retrieve the field type of field 20 of the Customer table. If the Customer table only has 15 fields, this code will generate error 77.

integer iType
get_attribute DF_FIELD_TYPE of Customer.File_Number 15 to iType
  1. Recreate the table definition (.FD) file using File > Output DEF/FD in Database Builder, then recompile the program.

78 - Can't update Record 0 of table

Cause

Database table or disk directory is damaged.

This error is fatal.

Resolution

Generally, the disk should be reformatted and data recovery techniques used. Usually, database tables triggering this error are irrecoverably damaged. Restoring data from a good backup is the best recovery method.
Verify proper configuration of Read Caching and Opportunistic Locking on your network.

79 - Field not indexed - can't find by this

Cause

A find has been attempted on a non-indexed field.

  1. User is attempting a find on a non-indexed field.
  2. Incorrect coding that incorrectly tries to find on a non-indexed field.

Resolution

  1. or 2. Either add an index to the table for the field in question or instruct the user that this field cannot be used to find records.

80 - Can't close table

Cause

Database table or disk directory is damaged.

This error is fatal.

Resolution

Generally, the disk should be reformatted and data recovery techniques used. Restoring data from a good backup is the best recovery method.
Verify proper configuration of Read Caching and Opportunistic Locking on your network.

81 - Record number out of range

Cause

If a record number out of range error occurs when saving a record, it indicates a corrupted database table.

Resolution

Generally, the disk should be reformatted and data recovery techniques used.
Verify proper configuration of Read Caching and Opportunistic Locking on your network.

82 - Edited record not saved

Cause

If an indexed field in an active record buffer is edited and then either a find is attempted or the file is closed before the edited record is saved, this error will be reported, and the buffer will not be cleared.

83 - Data type error - String used as Number

Cause

Type check error. This often arises from the use of an old program with a database file whose file definition has been modified.

Resolution

Recompile the program with an up-to-date table definition (.FD) file.

84 - Field outside record

Cause

  1. This is generated by addressing a field number that is not in the current range of fields in the table. For example, if the table definition of the Customer table has 10 fields, you cannot access field 12.
  2. This can also be caused by using an old program with a modified table definition.

Resolution

  1. Recreate the table definition (.FD) file using File > Output DEF/FD in Database Builder, then recompile the program.
  2. Recompile the program with an up-to-date table definition (.FD) file.

85 - Can't open .VLD file

Cause

  1. An open command is issued on a compressed file and the .VLD file is not found.
  2. Could indicate corruption in an embedded (DataFlex) database compressed data (.VLD) file.

Resolution

  1. Make sure the .VLD file for the current table is located in the same folder in the DataPath as the .DAT file.
  2. Generally, the disk should be reformatted and data recovery techniques used. Usually, database tables triggering this error are irrecoverably damaged. Restoring data from a good backup is the best recovery method.
    Verify proper configuration of Read Caching and Opportunistic Locking on your network.

Cause

This error will occur at runtime whenever a relationship is found between 2 database fields that are not of exactly the same type and length. Overlap fields are the only exception to this rule; they may relate to either other overlap or ASCII fields of the same length.

Resolution

Ensure that related fields are of the same type and size. For example, do not relate a numeric 6.0 field to a numeric 4.0 field.

Note: Some developers using DataFlex 2.3b used record number relationships, where a field in one database file is related to the RECNUM field in another file. When upgrading to more recent revisions of DataFlex, suddenly this message appears. This is usually because the "relating from" field was defined as Numeric 6.0, instead of Numeric 8.0, which is the type and length of the RECNUM field. However, record number relationships should be avoided whenever possible, and even with legacy applications, efforts should be made to remove them.

87 - No Superfind path to this record

Cause

Can't superfind from this DEO; main table in the current view does not relate to this DEO's table and field.

88 - Invalid table name

Cause

A badly formatted or too-long file name has been entered.

89 - Infinite recursion

Cause

  1. The program may be calling a function recursively (infinite loop).
  2. The program has nested procedures and functions too deep for the runtime to handle.

90 - Please enter a valid record ID

Cause

No record is found in a DEO attached to a database field with Find Required checked in its DataDictionary (using DD_FindReq Field_Option).

91 - Attempt to put into Integer constant

Cause

An attempt was made to change the value of an integer constant.

Resolution

You cannot alter the value of a constant.

92 - Program file not found

Cause

  1. Attempt to execute a program that does not exist.
  2. Error in a runprogram or chain command.
  3. Attempt to execute a program file that is not a valid DataFlex program.
  4. Program file could be corrupt.
  5. Attempt to execute a program file that was compiled in an earlier version of DataFlex.

This error is fatal.

Resolution

  1. Check the path to and name of the program.
  2. Check the path to and name of the program in the chain or runprogram statement.
  3. Execute the program using the proper method.
  4. Recompile the program.
  5. Recompile the program in the current version or install the DataFlex runtime for the version in which the program to be executed was compiled.

93 - Argument for return value missing

Cause

Missing argument for the return value of a function or procedure.

Resolution

Supply a variable to return a function or procedure call return value to.

Example

Function Foo
    Integer iVoid
    Function_Return iVoid
End_Function // Foo

Procedure Bla
    get Foo
End_Procedure  // Bla

The call to Foo above does not allow for a return value from Foo like the correct code below.

Function Foo
    Integer iVoid
    Function_Return iVoid
End_Function // Foo

Procedure Bla
    integer iRetVal
    get Foo to iRetVal
End_Procedure  // Bla

94 - Program line number out of range

Cause

A precompiled header file may be corrupt.

Resolution

Re-precompile all header files by selecting Precompile All Packages from the Tools menu of the Studio.

Recompile your application.

96 - Can't open program file

Cause

  1. Attempt to execute a program that does not exist.
  2. Error in a runprogram or chain command.
  3. Attempt to execute a program file that is not a valid DataFlex program.
  4. Program file could be corrupt.
  5. Attempt to execute a program file that was compiled in an earlier version of DataFlex.

This error is fatal.

Resolution

  1. Check the path to and name of the program.
  2. Check the path to and name of the program in the chain or runprogram statement.
  3. Execute the program using the proper method.
  4. Recompile the program.
  5. Recompile the program in the current version or install the DataFlex runtime for the version in which the program to be executed was compiled.

98 - Invalid message

Cause

This error is used when a message is sent to an object and that object (and all of its ancestors) do not understand it (it is not defined in those objects and their superclasses).

Resolution

This is usually caused by sending a message to the wrong object. Ensure that the correct object receives the message. You can usually test this by placing a debugging breakpoint into the message that is being called.

99 - Wrong revision of DataFlex

Cause

This message is issued by the DataFlex runtime (Client Engine) when it detects that the compiled program (.exe file) being executed is a different revision than the runtime.

Resolution

Run 1. Correct

100 - Operator error

Cause

  1. An operator entered an incorrect value.
  2. An operator performed an incorrect function.

Resolution

  1. Correct the value being entered.
  2. Do not perform the incorrect function.

101 - Can't change key field

Cause

An attempt was made to change the value of a database field with Key Field checked in its DataDictionary (using the Key_Field_State Property).

Resolution

Do not attempt to change the value of a key field.