Compiling/Interpreting a Frame
If you are unable to compile an individual frame or procedure, check the following areas.
Source Code Files
Take the following steps to check the source code file for the frame or procedure:
• Try to edit the source code file for the frame to ensure that the file exists. Also, be sure that you have permission to access the file.
• Be sure that multiple frames or procedures do not share the same source code file.
• Ensure that the file system is not full for the source code directory. Also, use the procedure described above to ensure that you have not exceeded the disk quota.
• If the source code file or form is so large that the generated C++ code is too large for the C++ compiler, then break the frame up into smaller pieces.
Forms
Try to edit the form to ensure that the form exists. Also, be sure you have permission to use it.
Compilation Errors
If you run the frame or procedure and receive a message indicating compilation errors, use the Errors operation to determine the cause of the source code errors.
Frame Variables
If you are using a variable as a frame name in a callframe statement, the called frame cannot be compiled when you press Go. This occurs because ABF cannot tell at compilation time which frame to call at run time.
You must use one of the following methods to compile any frames that are called only through variable names:
• Use the Compile operation to compile the frame explicitly.
• Include code like the following in the source code for the frame that calls a frame by a variable name:
if 0 = 1 then
callframe framename1; /* one callframe for each frame */
callframe framename2; /*that could be called from this*/
callframe framename3; /* frame by callframe :variable */
endif
Because the above condition never can be met, the code never is executed; however, it is compiled. Remove the code after you have completed developing the application.
Uncompiled and Unnecessarily Compiled Frames
The 4GL compiler/interpreter compares the modification date of a frame's source code file with the date stored in the database to determine whether to recompile the frame. If a file's modification date is changed incorrectly, either of the problems in the following list can occur.
• The frame is compiled unnecessarily; this can happen when you:
• Copy the source code file to another location
• Access the source code file from multiple machines, or file servers whose clocks are not synchronized.
• VMS: Change the permissions on the source code file.
• The frame is not compiled; this can happen when you:
– Restore into the directory an older version of the source code file
– Call a frame that is specified as a variable in the 4GL source code
– Access the source code file from multiple machines, or file servers whose clocks are not synchronized (ABF allows you a margin of error of approximately 10 minutes)