Skip to content

Obsolete Error Messages

Obsolete Errors List

See Also: Finding Specific Errors

Overview

The error numbers and messages listed in this document are obsolete in DataFlex for various reasons. Typically, this is because the error was added for a specific revision of DataFlex and/or a specific platform on which character-mode DataFlex runs other than Microsoft Windows (e.g., UNIX, Linux, DOS).

You should never encounter the error numbers and/or messages listed in this section. However, because legacy code that triggers these errors may still be present in some DataFlex applications, these errors are listed here for completeness.

Error List

19 - Multi-user time out (busy too long)

This error has been replaced by error 4106 - Lock time-out in DataFlex.

Cause

Multi-user time out. The system is in a locked state for too long. Check that none of your programs does a lock or reread without an unlock. On a very busy system, it is possible to get this error occasionally through no fault of the program.

35 - Program must be converted

Cause

If you have copied an application from another environment (MS-DOS to XENIX, UNIX to any other UNIX), compiled program files may not be compatible with the new environment. In such a case, you will get this error. The program source code is compatible and may be made executable in the new environment simply by recompiling it in that environment.

46 - Graphics mode not initialized

This error only applies to DataFlex revisions 2.3 and 3.01, which supported graphics commands in character-mode.

Cause

Most of the commands in the Graphics group require the graphic command to have been executed with its on option prior to the command. This error is triggered when such a command is used without graphic on having first been executed.

47 - Bad or missing graphics driver

This error only applies to DataFlex revisions 2.3 and 3.01, which supported graphics commands in character-mode.

Cause

If the graphic command with on is executed, it must either specify a graphics device driver (*.DSP) or there must be a driver name in the value of System Variable DFGRAPH_DRVR, or a default driver name must be installed through the Configuration Utility. Where all these conditions fail, this error will be triggered. Correct any of the three ways of providing the needed driver name. This error will also be triggered in the event the named driver is not present on the disk drive. Check to make sure it is present and correctly named.

48 - Graphic commands not allowed

This error only applies to DataFlex revisions 2.3 and 3.01, which supported graphics commands in character-mode.

Cause

DataFlex supports graphics commands only in certain operating system environments. This error occurs when an attempt is made to execute such commands in an operating system environment in which it is not supported.

49 - Demo version limitation exceeded. Buy a full license!

This error only applies to character-mode versions of DataFlex.

50 - Internal expression error

This error can only occur at compile time and not at runtime in DataFlex.

Cause

A mathematical expression could not be typed. This problem is most likely to be generated by an improper compilation and can often be fixed by recompiling the source code. This error is most likely to occur at compile time.

95 - Argument type not legal in ENTRY Command

This error only applies to character-mode revisions of DataFlex.

Cause

Legal types of argument for the entry command are windows, database fields, expressions, and options. Where an entry command has a constant, variable, label, or df_filename as an argument, this error will be triggered. Errors of this kind are most likely to be reported first at compile time.

97 - Too many GOSUBs without RETURN

This error only applies to character-mode revisions of DataFlex and should not be used.

Cause

For every gosub or use of a keyproc, there must be a return. If not, after 18 gosubs, you will get error 97. In addition, if your keyproc is called from within a subroutine, you must return to within that subroutine.

100 - Name_Object Must Precede Class Or Procedure

The use of Name_Object is obsolete.

101 - Unable to initialize TTS server for file

This error only applies to the DataFlex 2.3b Enhanced Runtime.

102 - Unable to set TTS mode for file

This error only applies to the DataFlex 2.3b Enhanced Runtime.

102 - Sub_Page !1 Already Defined As A Physical Image

102 - Line Number Out Of Sequence

This is a command compilation error.

Cause

This error can be caused by compiling a corrupted or outdated (from a previous version) precompiled package or header.

Resolution

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

Recompile your application.

If the error persists, check the subfolders of your workspace for precompiled copies of windows.pkg (windows.fld & windows.pkd) and dfallent.pkg (dfallent.fld & dfallent.pkd). If you find any, rename them, then recompile your application.

103 - 2yr dates, run CONV2000 to fix datafile

This error only applies to the DataFlex 2.3b Enhanced Runtime.

The equivalent error message for DataFlex is error 4354 Dates are unconverted.

104 - Duplicate Variable Defined

Cause

Same variable defined twice as different types. Coding error. This is a command compilation error.

Resolution

Rename one of the variables.

104 - Fatal Error

This is a command compilation error.

Cause

Maximum number of image windows was exceeded. This should only occur in legacy code using images, such as a BasicReport.

Resolution

Reduce the number of image windows in your application.

105 - Invalid Parameter !4

105 - Invalid Parameter !6

105 - Parameter Duplication !4 !6

105 - Is Not A Valid Type/Class

This is a command compilation error.

Cause

Internal compiler conflict caused by a coding error. The offending term is displayed in the message in place of symbol_name.

Resolution

Check the spelling of symbol_name. Verify that symbol_name is a valid type/class.

106 - Error In Closing .exe File on Line:

Cause

  1. Operating system error (disk or folder full).
  2. Lack of write rights in the location where the compiled file is to be created.
  3. Missing ProgramPath value in the workspace (.WS) file.

This is a command compilation error.

Resolution

  1. Ensure that plenty of disk space is available for the compiled program file.
  2. Grant write rights in the location where the compiled file is to be created or change the location where the compiled file is to be created to one where write rights exist. This can be achieved by changing the location specified in the ProgramPath value in the workspace (.WS) file.
  3. Add a ProgramPath value to the workspace (.WS) file.

106 - Error In Creating .exe File On Line:

This is a compiler initialization error.

Cause

  1. Lack of write rights in the location where the compiled file is to be created.
  2. Missing ProgramPath value in the workspace (.WS) file.

Resolution

  1. Grant write rights in the location where the compiled file is to be created or change the location where the compiled file is to be created to one where write rights exist. This can be achieved by changing the location specified in the ProgramPath value in the workspace (.WS) file.
  2. Add a ProgramPath value to the workspace (.WS) file.

108 - Open Parenthesis Expected

This is a command compilation error.

Cause

Start of an expression not found.

Resolution

Add parentheses around the expression.

109 - Unequal Parentheses

This is a command compilation error.

Cause

End of an expression not found.

Resolution

Add a closing parenthesis to the expression. Use the Match Parenthesis option in the Studio to verify that the parentheses are matched.

111 - Undefined Symbol In Argument

This is a command compilation error.

Cause

Internal compiler conflict.

  1. An unresolved symbol was encountered.
  2. This error is often caused by a typo or incorrect use of a symbol.

Resolution

  1. Define the symbol before use or correct the symbol used.
  2. Check the symbol for spelling errors.

Example

Incorrect Code:

if Found send Info_Box "Found is True"

Correct Code:

if (Found) send Info_Box "Found is True"

This example is similar to the example above, where in the correct code, the Found indicator is enclosed in parentheses and thus evaluated as an expression.

111 - Undefined Symbol U_!1 In Argument

111 - Undefined Symbol U_!2 In Argument

112 - Undefined Symbol In Entry Or Form Command

Formatting options are obsolete. They should be replaced with DataDictionary-based equivalents.

Entry is obsolete. It should be replaced with a Data Entry Object (DEO).

Accept is obsolete. It should be replaced with a Windows Control (e.g., Form).

This is a command compilation error.

Cause

An entry, accept, display, print, or format command was used with an undeclared argument. The triggering characters are usually within the braces {} for a format option. This error is also triggered when a format option is directed to a window which has already been addressed by a format option.

117 - Unresolved Begin, For, Repeat or While

Cause

If you used a begin, for ... from ... to, repeat, or while command without a terminating end, loop, or until command, this error will be triggered. Review closure of control blocks in your source code. This is a command compilation error.

Resolution

Control blocks must exist in matching pairs. Verify that each control block's beginning has a matching ending statement. This can get complex due to control blocks being nested inside other control blocks. A simple method of making this easier to track down is to always indent control blocks, including nested object control blocks, so that matching beginning and ending statements line up in the same columns in the source code.

120 - Missing End_Procedure or End_Function command

Cause

A procedure or function command was compiled without a following end_procedure or end_function command. This is a command compilation error.

Resolution

Be sure that each Procedure statement is followed by a matching End_Procedure statement and each Function statement is followed by a matching End_Function statement.

121 - Missing

Cause

An opening character (left brace, left bracket, etc.) was used, but the closing (right) version of the character was not found on the command line. This is a command compilation error.

Resolution

Ensure that all brackets and parentheses in a code command line are matching pairs. Use the Match Parenthesis option in the Studio to verify that the parentheses are matched.

122 - Line Too Long

Cause

A single continuous code statement has exceeded the allowed maximum number of characters.

This is a macro-compilation error.

Resolution

Reduce your line length to remain within the limit. Split up one line into multiple lines if necessary.

126 - Too Many Mask Fill Characters Defined

The Fill= Print Format Option is obsolete.

Cause

The window output format option fill= may be used for up to eight different characters within a single program to provide fill characters for output through those windows. This error occurs if more than eight different fill characters are provided in the entire program. This is a macro-compilation error.

127 - Invalid Character Found In Page Name

Cause

This is a form compilation error.

  1. After the slash, the first character of a page name must be a letter, followed by any character(s) except /:;,()[]{} (numbers, periods, and underscores may be used, among others).
  2. This is sometimes caused by accidentally omitting the second slash required to comment out a line of code.

Resolution

  1. Change the name of your image to be a legal name.
  2. Add a second slash to comment out a line of code.

129 - Too Many User-Defined Indicators Found

Cause

DataFlex provides for 89 user-defined indicators, plus 38 more predefined. More than this number will trigger this error. This is a macro-compilation error.

Resolution

Reduce the number of indicators your program uses. Indicators are largely obsolete in DataFlex. In most cases, indicators can be replaced with boolean variables or properties.

130 - Reserved Word Used

Cause

A command, option, system variable, system indicator, or the like is found in a position where such a word is not allowed.

Resolution

Fix by changing to another word. This is a macro-compilation error.

130 - Variable Must Be Declared

Cause

An argument has been encountered which must be a variable, but which has not been declared with a number, string, integer, date, real, or indicator command. This is a macro-compilation error.

Resolution

Declare the variable for the appropriate type.

150 - Macro Buffer Size Exceeded

Cause

Macros as defined are too large to fit in available buffer space. Usually the result of a syntax error. This is a macro-compilation error.

Resolution

Check syntax. Otherwise, Compiler Option M may permit compilation with larger macro-expansion buffer.

151 - Include File Not Found

Cause

The file specified for inclusion into the program by a Use or #INCLUDE statement on the line of code listed as cannot be found along the MakePath. This is a macro-compilation error.

Resolution

This error sometimes occurs if a filename is misspelled.

152 - Unequal Parentheses In Expression

Cause

Open and close parentheses not matched. This is a macro-compilation error.

Resolution

Add a closing parenthesis to the expression. Use the Match Parenthesis option in the Studio to verify that the parentheses are matched.

155 - Indicator Not Resolved:

Cause

Indicator used has not been defined. This is a macro-compilation error.

Resolution

Verify that you have declared the indicator prior to using it. Check the spelling of the indicator.

155 - Too Many Indicators

Cause

Maximum of 3 indicators per line exceeded. This is a macro-compilation error.

Resolution

Reduce the number of indicators used on a single line to below the maximum. Split up the line into multiple lines if needed.

156 - No Active Conditionals

This is a macro-compilation error.

Cause

A #ELSE appears in a macro without a #IF... being open.

Resolution

Add a matching #IF for the #ELSE.

157 - Forward Reference: Not Resolved

This is a macro-compilation error.

Cause

  1. Label (goto or gosub) not found. Often caused by spelling inconsistencies.
  2. You used the name of a message not defined anywhere in the object or its class heritage in which the message was invoked.

Resolution

  1. Check spelling. If the error is not apparent in the source file, check whether one of the commands may be using an internal goto or gosub.
  2. Check spelling of method calls and method names. Ensure the object is inside your current object neighborhood or declared outside of an object neighborhood prior to the current line of code. If the method is declared after this line of code, add a Register_Procedure or Register_Function statement to resolve this compiler error (make sure the method really exists before doing this, or you will get runtime errors later).

159 - Too Many Stack Levels

This is a macro-compilation error.

Cause

This error is triggered when the maximum number of control blocks has been exceeded. Control blocks are created by begin, repeat, and while commands, format commands using the range= option, and structured control commands, among other things.

Resolution

The maximum number of control blocks which may be open is 30. Reduce the number of stack levels to be below the limit. This can sometimes be achieved by splitting complex code up into individual methods.

160 - Pop Past Beginning

Cause

A control block terminator appears without a preceding block initializer. Examples are end (requires begin or while), until or loop (require repeat), etc. This is a macro-compilation error.

Resolution

Control blocks must exist in matching pairs. Verify that each control block's beginning has a matching ending statement. This can get complex due to control blocks being nested inside other control blocks. A simple method of making this easier to track down is to always indent control blocks, including nested object control blocks, so that matching beginning and ending statements line up in the same columns in the source code.

162 - Too Many Arguments To Runprogram

Cause

Too many arguments were passed to a runprogram command.

Resolution

See the documentation for the runprogram command and correct your syntax. If you need to pass multiple arguments to a program being launched via runprogram, enclose all of the arguments in quotes to turn them into a single argument being passed to runprogram.

Example

The following is an example of calling a hypothetical program called AddToShoppingCart.exe, which could be used to add items to a shopping cart. It accepts the following arguments: 1. The Customer's Id, 2. The Item's Stock Number, 3. The price the item is being purchased for.

runprogram background "AddToShoppingCart.exe" "SmithJohn1234" "NavySweaterNS34XL" "19.95"

The incorrect code above sends the individual arguments required for AddToShoppingCart.exe as separate arguments to runprogram. The correct code below appends the arguments required for AddToShoppingCart.exe into a single argument being passed to runprogram.

string sCustId sItemStockNum nPrice
move "SmithJohn1234" to sCustId
move "NavySweaterNS34XL" to sItemStockNum
move 19.95 to nPrice
runprogram background "AddToShoppingCart.exe" (sCustId + " " + sItemStockNum + " " + (string(nPrice)))

162 - Type Check Error In Argument: Argument Required

This is a macro-compilation error.

Cause

The command was issued with fewer than the minimum required number of arguments.

Resolution

Check the help for the command and verify the correct number of arguments to use.

162 - Type Check Error In Argument: Constant Not Allowed

This is a macro-compilation error.

Cause

A constant was used in a command which does not deal with constants.

Resolution

Check the help for the command and verify the correct argument types to use.

162 - Type Check Error In Argument: Date Not Allowed

This is a macro-compilation error.

Cause

A date, or date variable, was used in a command which does not deal with dates (uses strings, etc.).

Resolution

Check the help for the command and verify the correct argument types to use.

162 - Type Check Error In Argument: Expression Not Allowed

This is a macro-compilation error.

Cause

An expression was used in a command which does not deal with expressions.

Resolution

Check the help for the command and verify the correct argument types to use.

162 - Type Check Error In Argument: File Element Not Allowed

This is a macro-compilation error.

Cause

A file element was used in a command which does not deal with file elements.

Resolution

Check the help for the command and verify the correct argument types to use.

162 - Type Check Error In Argument: Gp Indicator "[]" Not Allowed

This is a macro-compilation error.

Cause

A Gp indicator ([ or ]) was used in a command which does not deal with Gp indicators.

Resolution

Check the help for the command and verify the correct argument types to use.

162 - Type Check Error In Argument: Group Not Allowed

This is a macro-compilation error.

Cause

A group was used in a command which does not deal with groups.

Resolution

Check the help for the command and verify the correct argument types to use.

162 - Type Check Error In Argument: Indicator Not Allowed

This is a macro-compilation error.

Cause

An indicator was used in a command which does not deal with indicators.

Resolution

Check the help for the command and verify the correct argument types to use.

162 - Type Check Error In Argument: Integer Not Allowed

This is a macro-compilation error.

Cause

An integer, or integer variable was used in a command which does not deal with integers (uses strings, etc.).

Resolution

Check the help for the command and verify the correct argument types to use.

162 - Type Check Error In Argument: Invalid Literal

This is a macro-compilation error.

Cause

162 - Type Check Error In Argument: Label Not Allowed

This is a macro-compilation error.

Cause

A label was used in a command which does not deal with labels.

Resolution

Check the help for the command and verify the correct argument types to use.

162 - Type Check Error In Argument: Must Be An Indicator

This is a macro-compilation error.

Cause

A command was used that requires the use of an indicator.

Resolution

Check the help for the command and verify the correct use.

162 - Type Check Error In Argument: Must Be Defined

This is a macro-compilation error.

Cause

An identifier was used that has not yet been defined.

Resolution

Define the identifier. Check the spelling of the identifier.

162 - Type Check Error In Argument: Number Not Allowed

This is a macro-compilation error.

Cause

A number, or number variable, was used in a command which does not deal with numbers (uses strings, etc.).

Resolution

Check the help for the command and verify the correct argument types to use.

162 - Type Check Error In Argument: Option "{}" Not Allowed

This is a macro-compilation error.

Cause

A { or } option was used in a command which does not deal with { or } options.

Resolution

Check the help for the command and verify the correct argument types to use.

162 - Type Check Error In Argument: Should Not Be Defined

This is a macro-compilation error.

Cause

162 - Type Check Error In Argument: String Not Allowed

This is a macro-compilation error.

Cause

A string, or string variable, was used in a command which does not deal with strings (uses numerics, etc.).

Resolution

Check the help for the command and verify the correct data types to use.

162 - Type Check Error In Argument: Too Many Arguments

This is a macro-compilation error.

Cause

Multiple arguments were used with a command which allows only one argument, or multiple arguments were used with a command which can handle only a certain number (see the help for the command in question).

Resolution

Check the help for the command and verify the correct number of arguments to use.

162 - Type Check Error In Argument: Variable Not Allowed

This is a macro-compilation error.

Cause

A variable name was used in a command which cannot handle variables.

Resolution

Check the help for the command and verify the correct argument types to use.

162 - Type Check Error In Argument: Window Not Allowed

This is a macro-compilation error.

Cause

A window was used in a command which cannot handle windows.

Resolution

Check the help for the command and verify the correct argument types to use.

164 - Command Not Found:

Cause

  1. A command in the source file (symbol_name) is not present in the DataFlex included command set, the program, and its packages.
  2. Misspellings frequently trigger this error.
  3. The file Flex.cfl is not accessible to the compiler.

Resolution

  1. Check to make sure you are including the source code file that contains the command named as using a Use or #INCLUDE statement. The online help topic for the command will tell you which file to include.
  2. Check the spelling of the command.
  3. Make sure Flex.cfl is in the Lib subfolder where DataFlex is installed and nowhere else. Make sure that an outdated version (from a prior version of DataFlex) of Flex.cfl is not found elsewhere (e.g., one of the subfolders of your workspace).

170 - Cannot Replace To Itself

This is a macro-compilation error.

Cause

Logic of replacement is invalid. Often caused by misuse of reserved word(s) or syntax error(s).

170 - Window Was Already Typed

This is a macro-compilation error.

Cause

171 - Window Cannot Be Typed

Formatting options are obsolete. They should be replaced with DataDictionary-based equivalents.

This is a macro-compilation error.

Cause

These errors are the result of conflicting format options on a single window. For example, a {check="yn"} option and a {range=0,9} option exclude all possible input. Likewise, any range= or check= option is prohibited on any window which is used to accumulate a total or subtotal for use by the subtotal command or with the % subtotal accumulator symbol.

172 - Too Many Nested Blocks

Cause

This error is triggered when the maximum number of control blocks has been exceeded. Control blocks are created by begin, repeat, and while commands, format commands using the range= option, and structured control commands, etc.

Resolution

The maximum number of control blocks which may be open is 30. Reduce the number of control blocks to be below the limit. This can sometimes be achieved by splitting complex code up into individual methods.

175 - Source Incompatible with Compiler on Line

This is a macro-compilation error.

Cause

  1. A #CHKSUB directive in the source code specified a revision level for a subsystem that did not match the compiler's revision level for the subsystem.
  2. This can be caused by an old flex.cfl file (from a prior revision of DataFlex) being found along the DFPATH.

Resolution

  1. Check the source code in which line number occurs for compliance with the appropriate revision level, and/or check the arguments of the #CHKSUB.
  2. Check to ensure that you do not have old copies of flex.cfl along the DFPATH. You may have an old copy in your workspace. There should only be one flex.cfl file for any revision of DataFlex, in the \dataflex\lib folder.

199 - Symbol(s) Already Defined

This is a macro-compilation error.

Cause

A string, number, integer, date, real, or indicator command is executed for an argument (global variable name) which has already been defined.

Resolution

Give all global variables in a program unique names regardless of their types. Use Hungarian notation for naming identifiers as discussed in the Naming Conventions section of the help.

300 - Msg already defined as a Global method

Cause

A procedure is already defined as a global procedure.

Resolution

Rename the new procedure.

300 - Get already defined as a Global method

Cause

A function is already defined as a global function.

Resolution

Rename the new function.

300 - Class/End_Class should .Not. Be Inside a Method

Cause

A Class or End_Class statement is located inside a method.

Resolution

Classes cannot be defined inside methods. Move the class declaration outside of any procedures or functions.

300 - Classes Can .Not. Be Nested Within Classes

Cause

A Class or End_Class statement is located inside a class.

Resolution

Classes cannot be defined inside other classes. Move the class declaration outside of any other classes.

300 - Classes Can .Not. Be Nested Within Methods

Cause

A Class or End_Class statement is located inside a method.

Resolution

Classes cannot be defined inside methods. Move the class declaration outside of any procedures or functions.

300 - Construct_Object .Not. Allowed In Objects

Cause

A Construct_Object statement is located inside an object.

Resolution

Construct_Object is part of the DataFlex class constructor and limited to use in classes. Move the construct_object statement to a class or subclass an existing class to move the construct_object code there.

300 - End_Class Without Class

Cause

A End_Class statement is missing its matching Class statement.

This can also be caused by a Class statement being placed in an illegal area, such as inside another class or a method.

Resolution

Class and End_Class statements must exist in matching pairs. Verify that each class declaration has a matching Class and End_Class statement.

300 - End_Funct/End_Proc Command .Not. Within A Method

Cause

An End_Procedure or End_Function statement is located inside a method.

Resolution

Methods (procedures and functions) cannot be defined inside other methods. Move the method declaration outside of any other methods.

300 - End_Object Expected Before End_Class

Cause

An Object statement that is nested inside a class is missing its matching End_Object statement.

Resolution

Objects can be declared inside class declarations (inside methods). Object and End_Object statements must exist in matching pairs. This error can occur if an Object statement inside a class is missing its matching End_Object statement or if that End_Object statement has been misplaced to outside of the class declaration. Verify that each object declaration has a matching Object and End_Object statement and that they are both inside the same class declaration. This can get complex due to objects being nested inside other objects, as well as inside classes and methods. A simple method of making this easier to track down is to always indent code blocks, including nested object declarations, methods, and classes, so that matching object and end_object statements, matching class and end_class statements, matching function and end_function statements, and matching procedure and end_procedure statements line up in the same columns in the source code.

300 - End_Object Without Object

Cause

An End_Object statement is missing its matching Object statement.

Resolution

Object and End_Object statements must exist in matching pairs. Verify that each object declaration has a matching Object and End_Object statement. This can get complex due to objects being nested inside other objects. A simple method of making this easier to track down is to always indent code blocks, including nested object declarations, so that matching object and end_object statements line up in the same columns in the source code.

300 - End_Object Without Object In Method

Cause

  1. An object is missing its End_Object statement.
  2. This error can also be caused by a missing ending statement of a procedure or function preceding the line that triggers the error.

Resolution

  1. Add an End_Object statement to declare the end of the object's code.
  2. Add an ending statement to the procedure or function that is missing one.

Example

Incorrect Code:

Object oButton1 is a Button
Procedure OnClick
End_Object  // oButton1

Correct Code:

Object oButton1 is a Button
Procedure OnClick
End_Procedure  // OnClick
End_Object  // oButton1

300 - Expecting Identifier After Type In Method Declaration

300 - Global Functions/Procedures Cannot Be Overloaded

300 - Global Method !1 !2 Already Defined

Cause

A global procedure is already defined somewhere prior in the code.

Resolution

Rename the new global procedure to create a unique name.

300 - Invalid Object Reference

300 - Invalid Position For '!1'

300 - Keyword Overloaded Cannot Be Between A Type And An Identifier

300 - Local Variables Can Only Be Defined Within Methods

300 - Messages In Class Should Be In Method

300 - Method Return .Not. Within A Method

300 - Methods .Not. Allowed In Class Child-Objects

300 - Missing Identifier Before Returns Keyword

300 - Missing Return Type After Keyword Returns In Method Declaration

Missing return type after keyword Returns on function declaration.

Example

Function Foo Returns
Integer iVoid
Function_Return iVoid
End_Function // Foo

The above function declaration is missing the return type following the Returns keyword:

Function Foo Returns
Integer
Integer iVoid
Function_Return iVoid
End_Function // Foo

300 - Missing Type In Method Declaration

300 - Objects In Classes Should Be Within A Method

300 - Procedures And Functions May .Not. Be Nested.

300 - Returns Must Be Followed By A Return Type

300 - This Method Was Previously Defined As .Not. Overloaded

300 - This Method Was Previously Defined As Overloaded

300 - Type Follows Type In Declaration

300 - Unexpected Symbol Encountered After Return Type In Method Declaration

300 - "Unknown type for local variable"

300 - "Unknown Type!"

301 - Global Variable Defined In Method

301 - Obsolete Syntax: Get/Set Form_Xxx To X Y

301 - Old Style Usage: No Item Keyword. Is Replacement For .Current. Or 0

301 - Old Style Usage: Possible Global Variable In Method

301 - Old Style Usage: S/B Gosub_Return

Cause

The Return command is now used to terminate procedures and functions, not to return execution from a subroutine call.

Resolution

The Gosub_Return command must be used to return execution from a subroutine call.

Ideally, obsolete procedural code using gosub and gosub_return statements should be replaced with object-oriented code using methods.

302 - Class Property Must Be Defined Within A Constructor Procedure

Cause

  1. A property is defined in a class, but outside of a constructor method.

Resolution

  1. Properties defined in a class must be defined inside a Construct_Object.

302 - Invalid Use Of 'Of'

302 - Messages In Class Should Be In Method

302 - Missing 'To' Keyword

Cause

  1. The 'to' keyword is missing before the return value argument in a function call.
  2. The 'to' keyword is missing before the argument in a get or set statement for a property.

Resolution

  1. The 'to' keyword must precede the return value argument in a function call.
  2. The 'to' keyword must precede the argument in a get or set statement.

302 - No Value Following 'To'

Cause

  1. There is an argument missing following the 'to' keyword in a function call.
  2. There is an argument missing following the 'to' keyword in a get or set statement for a property.

Resolution

  1. There must be an argument following the 'to' keyword in a function call.
  2. There must be an argument following the 'to' keyword in a get or set statement.

302 - Object Property Should .Not. Be In A Method

Cause

A property is defined in a method.

Resolution

A property defined for an object must be defined outside any methods. To create a property for an object being created in a class, define the properties in the superclass of the object.

302 - Object/End_Object Within Class Should Be In A Method

Cause

An object defined inside a class is defined outside of any method.

Resolution

Objects defined inside a class must be defined in a method. To create a child object when an object of the current class is created, define the object in the Construct_Object method.

302 - Property Can Only Be Defined Within A Class Or Object

Cause

A property is defined outside of any object or class.

Resolution

Properties must be defined inside a class or object. Move your property declaration into a class or object.

302 - Property Cannot Be Defined In An Object Within A Class

Cause

A property is defined in an object that is defined in a class.

Resolution

A property defined for a class must be defined outside any objects defined in that class. To create a property for an object being created in a class, define the properties in the superclass of the object.

302 - Too Many Params After 'To'

Cause

There is more than 1 argument following the 'to' keyword in a function call.

Resolution

The only argument following the 'to' keyword in a function call should be the argument that will accept the return value of the function being called.

A common mistake is to place the arguments being passed to the function after the return value argument at the end of the function call. Instead, the arguments being passed to a function should be listed before the 'to' keyword.

Example

Function Foo string s1 string s2 returns Boolean
Boolean bRetVal
:
Function_Return bRetVal
End_Function
Procedure DoSomething
Boolean bRetVal
string sArgument1 sArgument2
get Foo to bRetVal sArgument1 sArgument2
End_Procedure

In the incorrect code sample above, the arguments being passed to Foo are listed in the call to Foo after the return argument bRetVal. In the corrected version below, the arguments being passed to Foo are listed immediately following the name of the function being called (Foo) and before the 'to' keyword.

Function Foo string s1 string s2 returns Boolean
Boolean bRetVal
:
Function_Return bRetVal
End_Function
Procedure DoSomething
Boolean bRetVal
string sArgument1 sArgument2
get Foo sArgument1 sArgument2 to bRetVal
End_Procedure

302 - Too Many 'To'

Cause

The 'to' keyword is duplicated in a get or set statement for a property.

Resolution

Remove the duplicate 'to' keyword.

302 - Unusual Usage: Variable Or Expression Used As Message

777 - Object Is Missing Begin_Row...End_Row Commands

Cause

The syntax of the object's class requires a Begin_Row ... End_Row command block. This is a command compilation error.

778 - If Is A FileName It Is Unopened

Cause

  1. The syntax of the command calls for a database table filename, but the table named was not found.
  2. Reference is made to a database table that is required to be a DataDictionary object (DDO) main_file, but has not been specified as such.

This is a command compilation error.

Resolution

  1. Check the filename for misspelling.
  2. Check the folders along the MakePath for the presence of the database table.
  3. Recreate the .FD file (from Database Builder) for the database table specified by.
  4. Set the database table in question to be the DataDictionary object (DDO) main_file.

779 - Missing Keyword "Of"

779 - Missing Keyword "To"

998 - Unknown Field: !2

998 - Unknown Field: !6

1000 - Duplicate Item Name

1000 - Invalid Argument: "Begin_Pull_Down" Requires Menu_System Package

1000 - Name Already Defined

1001 - "Attempt To Redefine Symbol For Different Value"

1001 - End_Enumeration_List Without Enumeration_List Command

1001 - Enumeration Lists Cannot Be Nested

Cause

An attempt was made to nest enumeration lists inside each other.

Resolution

You cannot nest enumeration lists. Make sure each enumeration list has a matching beginning and end, defined by Enum_List and End_Enum_List.

1001 - Enumeration Value Must Be A Constant

Cause

An attempt was made to add a non-constant value to an enumeration list.

Resolution

You can only add constants to enumeration lists. You can use the define command to define symbols and assign constants, but not necessarily sequential values to enumeration lists.

4132 - UIMS subsystem not compatible

This error only applies to character-mode versions of DataFlex.

4137 - Cant find file to pack

This error applies to the DFPack utility of character-mode DataFlex.

4158 - Cant fork child process

This error only applies to character-mode versions of DataFlex.

4169 - Operation not supported by OS

This error only applies to character-mode versions of DataFlex.

4178 - User already logged in

This error only applies to the DataFlex Server Edition (DSE).

4186 - Too many files open on server

This error only applies to the DataFlex Server Edition (DSE).

4187 - Cant open administration file

This error only applies to the DataFlex Server Edition (DSE).

4188 - Cant close administration file

This error only applies to the DataFlex Server Edition (DSE).

4189 - Cant find user account

This error only applies to the DataFlex Server Edition (DSE).

4190 - No more groups defined

This error only applies to the DataFlex Server Edition (DSE).

4191 - Cant add user to server

This error only applies to the DataFlex Server Edition (DSE).

4192 - User already exists

This error only applies to the DataFlex Server Edition (DSE).

4193 - No more users defined

This error only applies to the DataFlex Server Edition (DSE).

4194 - Cant find group

This error only applies to the DataFlex Server Edition (DSE).

4195 - Group already exists

This error only applies to the DataFlex Server Edition (DSE).

4196 - Cant add group to server

This error only applies to the DataFlex Server Edition (DSE).

4197 - Cant add user to group

This error only applies to the DataFlex Server Edition (DSE).

4198 - User already in group

This error only applies to the DataFlex Server Edition (DSE).

4199 - Too many groups for this user

This error only applies to the DataFlex Server Edition (DSE).

4201 - User not in group

This error only applies to the DataFlex Server Edition (DSE).

4202 - Deadlock detected

This error only applies to the DataFlex Server Edition (DSE).

4203 - File is corrupt

This error only applies to the DataFlex Server Edition (DSE).

4204 - Extended server edition error

This error only applies to the DataFlex Server Edition (DSE).

4205 - Unable to access server file

This error only applies to the DataFlex Server Edition (DSE).

4206 - Cant identify specified server

This error only applies to the DataFlex Server Edition (DSE).

4207 - Bad user handle

This error only applies to the DataFlex Server Edition (DSE).

4208 - Bad group handle

This error only applies to the DataFlex Server Edition (DSE).

4209 - Invalid administration handle

This error only applies to the DataFlex Server Edition (DSE).

4210 - Cant update user definition

This error only applies to the DataFlex Server Edition (DSE).

4211 - Not enough server memory

This error only applies to the DataFlex Server Edition (DSE).

4212 - Cant delete user definition

This error only applies to the DataFlex Server Edition (DSE).

4213 - Login failed

This error only applies to the DataFlex Server Edition (DSE).

4214 - Cant update group definition

This error only applies to the DataFlex Server Edition (DSE).

4215 - Cant delete group definition

This error only applies to the DataFlex Server Edition (DSE).

4219 - Permission denied

This error only applies to the DataFlex Server Edition (DSE).

4225 - Cant delete .TAG file

This error only applies to the DataFlex Server Edition (DSE).

4226 - Not in a transaction state

This error only applies to the DataFlex Server Edition (DSE).

4227 - Already in a transaction state

This error only applies to the DataFlex Server Edition (DSE).

4228 - The server is down

This error only applies to the DataFlex Server Edition (DSE).

4230 - Protocol not supported

This error only applies to the DataFlex Server Edition (DSE).

4231 - Default login unsuccessful

This error only applies to the DataFlex Server Edition (DSE).

4232 - No transaction processing allowed

This error only applies to the DataFlex Server Edition (DSE).

4239 - Cant SYSTEM while in a transaction

The system command is obsolete.

Cause

An system command was attempted during a transaction.

Resolution

Certain operations are not allowed during a database transaction. This list includes any commands that execute another program, such as runprogram, or commands that exit a program, such as abort and exit_application.

A transaction is a lock...unlock, reread...unlock or begin_transaction...end_transaction block of code.

4240 - Server cannot open a local table

This error only applies to the DataFlex Server Edition (DSE).

4241 - Maximum number of server logins exceeded

This error only applies to the DataFlex Server Edition (DSE).

4245 - Server communications error

This error only applies to the DataFlex Server Edition (DSE).

4246 - Cant delete administrative user ID

This error only applies to the DataFlex Server Edition (DSE).

4247 - Cant delete administrative group ID

This error only applies to the DataFlex Server Edition (DSE).

4248 - Invalid DSE server serial number

This error only applies to the DataFlex Server Edition (DSE).

4249 - Not a DataFlex Server Edition License

This error only applies to the DataFlex Server Edition (DSE).

4250 - Must be administrative user (ADMIN)

This error only applies to the DataFlex Server Edition (DSE).

4288 - File not on Netware TTS enabled server System

Cause

Attempt to set a table's transaction type to server atomic that is not on a TTS capable NetWare volume.

A program opens a table flagged for TTS that is not on a TTS capable volume.

File is set to SERVER_ATOMIC and the NetWare redirector drivers are not installed.

Resolution

Move the table to a Novell TTS enabled volume.

Set the table's transaction type to server atomic.

Make sure the Netware redirector drivers are installed.

Make sure the table and all related files (.DAT,.HDR,.K??,.VLD) are flagged for TTS.

4293 - Bad image name

Cause

  1. Illegal characters in image name.

  2. Spaces to the left of the image name.

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

Resolution

  1. Only use legal ASCII characters (letters and numbers) in image names. Do not use spaces in image names.

  2. The DataFlex Studio sometimes indents the source code of the report, resulting in this error message. As a solution to this, place the report in a separate source code file and #INCLUDE the file in the place where the report was in the Studio.

4359 - Wrong Version of COM Object

This error only applies to Web Application Server 3.x and prior revisions.

4360 - Cannot Handshake With WebApp

This error only applies to Web Application Server 3.x and prior revisions.

4363 - Bad Format of Evaluation DLL

This error only applies to Web Application Server 3.x and prior revisions.

4364 - Web Deployment Server Expired

This error only applies to Web Application Server 3.x and prior revisions.

4412 - Serial Communications (SerialComm) error

Numerous DDE packages, including SerComm.pkg were removed from DataFlex as of revision 9.1 since they are no longer supported.

28670 - Registration not valid for this processor

This error code is obsolete. It applies only to character-mode version of DataFlex.

28673 - No TERM setting

This error code is obsolete. It applies only to character-mode version of DataFlex.

28674 - Unknown terminal type

This error code is obsolete. It applies only to character-mode version of DataFlex.

28675 - Unable to open console device

This error code is obsolete. It applies only to character-mode version of DataFlex.

28677 - Console size must be at least 24 by 80 to run this utility

This error code is obsolete. It applies only to character-mode version of DataFlex.

28683 - This terminal/OS does not support SCO ODT 2.0 scancodes

This error code is obsolete. It applies only to character-mode version of DataFlex.

28684 - This terminal has insufficent capabilities to run DataFlex

This error code is obsolete. It applies only to character-mode version of DataFlex.

28685 - Terminfo entry is larger than 4,096 bytes and can not be loaded

This error code is obsolete. It applies only to character-mode version of DataFlex.

28686 - Terminfo entry is not readable

This error code is obsolete. It applies only to character-mode version of DataFlex.

28687 - Terminfo entry is unaccessable

This error code is obsolete. It applies only to character-mode version of DataFlex.

28688 - Terminfo entry is corrupted

This error code is obsolete. It applies only to character-mode version of DataFlex.

28689 - Full path to terminfo file is too long

This error code is obsolete. It applies only to character-mode version of DataFlex.