Browse all forums dedicated to the Rocket® COBOL product family.
Recently active
Created On: 27 February 2012 Problem: Program is converting a large indexed file to a sequential file and the write of the sequential file is displaying an error with a file status of 9/A where A actually has a caret character "^" over it.Could you tell me where I can locate the descriptions of the error codes that contain the special characters, as above? Resolution: When you get a file status returned and the first character is a "9" it means that the second character is actual a binary value representing a run-time error and these are called extended file status codes. If you look in the Help under Extended file status you will find an example: Example of Extended File Status Codes The example code that follows illustrates how to redefine a standard file status so that it can be used as an extended file status. Assume for this example that the input file does not exist - when the OPEN INPUT statement is executed, a file status of 9/013 ("fi
Created On: 01 March 2012 Problem: A Net Express application that uses Dialog System and was running fine for years is migrated over to Visual COBOL R4 for Visual Studio using the Dialog System Addpack.Now when the applications calls the Dialog System run-time, "DSGRUN" in some cases a Run-time system error 114 will occur.What is the cause of this? Resolution: Look at your screenset file in the Dialog System painter of Net Express. From the Dialog System main menu select Options > Resource Files.Make sure that your filenames are pointing to a location that actually exists. If you have moved to a new machine or placed the Visual COBOL application in a new folder then these path names may no longer be valid.It is recommended that you place application resource files in the output folder of your Visual COBOL project and then use a relative pathname in Dialog System to specify the name in the current folder like ".\\myresource.icn" or .\
Created On: 01 March 2012 Problem: On UNIX, using the allocation override with SUBDIR($ENVVAR) in the config file doesn't seem to be able to recognise the AllocOverride.cfg file allocations. For example, having an allocation override of: OFFSET(324) VALUE(VSAM) SUBDIR($VSAMPATH) create the datasets in the allocated default dataset location. Resolution: On UNIX, we cannot expand a path that contains only an environment variable. It must contain the environment and a slash and additionaldirectory in which the files for those datasets will be created. Changing this to:OFFSET(324) VALUE(VSAM) SUBDIR($VSAMPATH/PRODV) will avoid the problem. Incidents #2561963, #2487875 Old KB# 35589#ES_ALLOC_OVERRIDE
Created On: 03 February 2012 Problem: Customer is migrating from a Unisys mainframe to Net Express 5.1 using SQL Server 2008 database.On mainframe they had a table with a column defined as CHAR(30) into which they stored a string of data that included a COBOL COMP data type.They redefined the host variable in their program as follows:01 char-field. 05 num-field pic 9(6) comp. 05 x-field pic x(20). 05 x-field2 pic x(7).and before inserting the columns into the database they would initialize the num-field to a numeric value starting with 1 and incrementing by 1 for each row.The INSERT worked fine and sqlcode was 0.When they fetched the data back into the program, however the value in the num-field was always = 105376.This worked
Created On: 14 February 2012 Problem: The ACUCOBOL-GT C$GETCGI routine retrieves CGI (Common Gateway Interface) variables. The common syntax to use is: CALL "C$GETCGI" USING VARIABLE-NAME, DEST-ITEM, VALUE-INDEX GIVING VALUE-SIZE where VARIABLE-NAME contains the name of the CGI variable that an ACUCOBOL-GT program receives from a HTTP web form. The syntax is easy to use when CGI variables have this structure:[FieldA] => 12345[FieldB] => ABCDEIn these cases, VARIABLE-NAME will contain "FieldA" or "FieldB". Which is the correct value to use in VARIABLE-NAME when CGI variables have sub-items?[FieldA] [SubFieldA] => ABCDE Resolution: A syntax like the following may work, depending on the characters used to identify the sub field in the original web form. In this example, the value to use in VARIABLE-NAME will be FieldA[SubFieldA]:01 WS-VARIABLE-NAME.
Created On: 10 February 2012 Problem: When using a GridView control on an ASP.NET web page, is there a way to allow a user to click on any row in the grid and do some processing on the selected line? It seems as if you must generate a select button for each row in order to generate the select event. Resolution: You can cause a GridView to return the SelectedIndexChanged event by adding the following code to the RowCreated event.You must also add the following to the Page header in order to avoid a Postback error:EnableEventValidation="false"When the row is clicked it will send the Select command to the GridView which will cause the SelectedIndexChanged event to fire. Make sure that you have the SelectIndexChanged event wired up to a method in your program as this will be called when the event is fired and then add the following code: method-id GridView1_RowCreated protected.procedure division using by value sender as object e as type Sys
Created On: 10 February 2012 Problem: When using COBSQL to compile code against Oracle 11g as the database the following directives are set in the project:p(cobsql) CSQLT=ORACLE8 CST CSP DIS MAKESYN VERBOSE KEEPCBL END-C p(cp) CONFIRM ENDP ENDP When the code is compiled, the Pro*COBOL precompiler is invoked and the programs compile without error:Pro*COBOL: Release 11.2.0.1.0 - Production on Thu Feb 9 15:32:35 2012Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.The compilation is sucessful and and .obj is produced.But when the linker is invoked to create an executable the following errors are displayed: : error LNK2001: unresolved external symbol _csqlsupp : error LNK2001: unresolved external symbol _ora8lib : error LNK2001: unresolved external symbol _ora8protThe import libraries orasql11.lib and csqlsupp.lib do exist in the link command.Why is this error occuring? Resolution: The cause of the p
Created On: 10 February 2012 Problem: A COBOL program is making two calls to a C program and passing a PIC X(20) string as a parameter. The C program moves a value to this parameter beffore returning to COBOL.I found that when I perform two calls to the C program, and the second string returned by C is smaller than the first one, COBOL does not recognize the 0x0 character and shows the two strings overlapped.to a C subprogram.For example:The first call returns 'file11111.txt', and the second 'file2.txt'.What COBOL sees is 'file2.txt txt'.Why is this? Resolution: This is to be expected as a NULL terminated string is a C construct and not a COBOL one. In COBOL a PIC X data item can contain any character including a X"00" (NULL).In order to get the expected results in COBOL you should either initialize the field to spaces before calling the C program or extract the data from the field after the call using something like: 
Created On: 14 February 2012 Problem: A COBOL program which interoperates with a .Net Assembly returns this error at compile time: prog.cbl, line nn: Verb expected, '(' found Resolution: The error is returned because ACUCOBOL-GT compiler found a MODIFY statement in the source code before of the related CREATE.The reason is that until the CREATE statement is compiled, the compiler doesn't know what type of control the handle refers to and so it can't check the method it's attempting to call. One solution may be to change the source code, moving the CREATE statement block before the MODIFY's.A finest solution is to declare what the handle type is in the working storage section.I.e.: a generic handle definition like this:77 MYASSEMBLY-HANDLE USAGE IS EXTERNAL HANDLE. may be improved this way:77 MYASSEMBLY-HANDLE USAGE IS EXTERNAL HANDLE OF "@assembly[[.namespace].class]". Incident #2555824 Old KB# 3
Created On: 14 February 2011 Problem: While compiling a COBOL program, the following error message appears: "Ignored - linkcount". For example:cob -C linkcount=2048 hello-world.cbl * Ignored - linkcount(2048) Resolution: The LINKCOUNT compiler directive was a feature of Object COBOL Developer's Suite (an old version of Micro Focus COBOL, withdrawn from service in 2005). The LINKCOUNT compiler directive is not included in Server Express (a newer version of Micro Focus COBOL introduced in the year 2000). If you use Server Express to compile, and if you specify the LINKCOUNT compiler directive, an error will warn you that LINKCOUNT is no longer available. For example: Unix prompt> cat $COBDIR/etc/cobver cobol v5.1.00 PRN=RXCAO/AAB:9p.k5.51.07 PTI=WrapPack 6 PTI=ES PTI=Fixpack51.07_03 Unix prompt> cat hello-world.cbl display "hello". Unix p
Created On: 26 January 2012 Problem: The Status of Solo is continually showing "Waiting for connection on port 81" when you select "Animate CGI." Resolution: This message is shown when Net Express cannot communicate with the SOLO webserver. A common problem is that the Windows Firewall intercepts the port communication. You will need to open the port that you are using with SOLO or disable any firewall that you may have installed. Incident #2550833 Old KB# 35416
Created On: 24 January 2012 Problem: COBOL application batch programs which is processing a high volume of detail records and after several hours they abort with a COBOL File error 34 on SORTWK1. Resolution: The runtime SORT temporary files were limited to 2GB of data each on UNIX ports. Since all the data is eventually merged into one temporary file, this meant that the total amount of data that could be sorted was limited to less than 2GB. An error 34 during the SORT was the usual indication that this limit had been reached. In version 7.1.1 it was a change that enables large file support on those UNIX systems which support it. The USE_LARGE_FILE_API configuration variable controls this support, just as it does for relative and sequential files.On UNIX systems, this variable allows you to turn on or off file system API support for very large files (greater than 2 gigabytes). Support for large files is enabled when USE_LARGE_FILE_API is set t
Created On: 24 January 2012 Problem: Net Express has been installed on a new machine and when Animating a program we can position the cursor on a data item and select Examine for the item but when we select the Change option the popup screen does not provide for any data entry/and does not show existing value. Why is this? Resolution: This looks like an OCX is not registered to Windows so it cannot be used by the product. The Net Express product install and update must be performed with Administrator rights with write permissions to the registry for both HKEY_CLASSES_ROOT and HKEY_LOCAL_MACHINE\\SOFTWARE in order that the Windows registry can be correctly updated during the installation process. The product contains two OCX's that need to be registered to Windows, VALUEEDITNX.OCX used during Animation and for opening a file as Binary and HEX6.OCX used for hex display in the Data File Editor. Open up a command prompt as Administrato
Created On: 23 January 2012 Problem: I have downloaded and installed the Dialog System AddPack for Visual COBOL from the Supportline Product Updates site at: http://supportline.microfocus.com/websync/VisualCobolAddpacks.aspxWhere do I find the version of the Dialog System Addpack that will install into the COBOL2010Runtime product? Resolution: There is only one Dialog System Addpack that can be installed for both the Visual COBOL Development product and the COBOL2010Runtime production product.The installer will determine which product is installed and will install the Addpack accordingly.It can be found on the Supportline Product Updates site at:http://supportline.microfocus.com/websync/VisualCobolAddpacks.aspx Old KB# 35406
Created On: 26 January 2012 Problem: When compiling a Dialog System application you get unresolved external symbol errors similar to:error LNK2001: unresolved external symbol _DSSETFOCUS error LNK2001: unresolved external symbol _DSGRUN error LNK2001: unresolved external symbol _DSDELWIN Resolution: You should ensure that the COBDIR and PATH environment variables are set to:PATH = C:\\Program Files\\Micro Focus\\Net Express5.1\\BinCOBDIR = C:\\Program Files\\Micro Focus\\Net Express5.1\\BinThe path to these environment variable may differ depending on whether you changed the directory when install Net Express or if you have a 64 bit system (i.e. it would be C:\\Program Files (x86)...It is also possible that this is caused by the LITLINK directive. If you have this directive set please remove it you do not need to resolve literals at link time rather than run time. Incident #2551160 Old KB# 35415
Created On: 27 January 2012 Problem: When compiling a COBOL program that uses the DB2 directive on a Windows 7 computer, the following error occurs:COBDB0006S Required DB software: 'db2agapi' could not be found.This occurs even though the location of db2aprep.dll, C:\\program files (x86)\\IBM\\SQLLIB\\BIN is specified in the system PATH. The same program works fine on a Windows XP computer. Resolution: This problem occurs when the Net Express project file resides on a mapped network drive instead of on the local drive. Try the following: 1. Open the project in the Net Express IDE and select Project > Properties and click the IDE button 2. Add the environment variable PATH with the following value: c:\\program files (x86)\\ibm\\sqllib\\bin;%PATH% 3. Do not place quotes around the value 4. Try to rebuild again Note: If your DB2 installation is in a different folder than the default shown above then please subst
Created On: 27 January 2012 Problem: If copybook or COBOL program has other extension e.g. .pro or .mam then when debugging the code in Visual COBOL won't colourise. This also makes it difficult to watch fields/see status codes. Resolution: Currently .cbl, .cob, .rc and ,cpy will be fully recognised in Visual COBOL. You can rename the files to the recognised file extensions. Old KB# 35423
Created On: 02 January 2011 Problem: When using LIKE in a WHERE clause that references a column type of VARCHAR or NVARCHAR the correct rows are returned if a literal is used in the comparison but not if a host variable is used.Example:This works:EXEC SQL DECLARE mycursor CURSOR FOR SELECT DISTINCT A.EMPL_NO ,A.EMP_NAMEFROM EMPLOYEES AWHERE ( A.EMP_NAME LIKE N'%JAMILA%' )END-EXECThis fails:MOVE N'%JAMILA%' to EMP-NAMEEXEC SQL DECLARE mycursor CURSOR FOR SELECT DISTINCT A.EMPL_NO ,A.EMP_NAMEFROM EMPLOYEES AWHERE ( A.EMP_NAME LIKE :EMP-NAME )END-EXECWhy? Resolution: The problem is that the space padding in the host variable causes the comparison to be false if the actual column data does not also have those spaces.You can get around this by padding the data ite
Created On: 26 January 2012 Problem: When compiling a .exe application to 64 bit you get the following error message in the compilation output:* Starting code generation* 006-R Read failure on input file. Not intermediate code or wrong versionERROR: (9) Program indicated failure Resolution: A common cause for this error message is when you try to compile an executable to 64 bit on a 32 bit machine.Please note that although you can use the P64 directive (which compiles applications to 64 bit using a 32 bit machine), you can only compile to intermediate ( .int ) code to 64 bit on a 32 bit machine.The only way that you can build a 64 bit EXE or DLL is to use Net Express on a 64 bit machine. Incident #2548035 Old KB# 35418
Created On: 27 January 2012 Problem: You may find that a project converted from Net Express to Visual COBOL does not build, it shows errors saying that words such as HEADING, BOOLEAN,ATTRIBUTE are reserved words. In Net Express all built without error. Resolution: These words such as: HEADING,BOOLEAN,ATTRIBUTE are reserved words in Visual COBOL, you can use the REMOVE directive in the additional directives textbox , found in the project properties in your Visual Cobol project, to exclude these as reserved words, allowing for a successful build in Visual COBOL. For example, REMOVE "HEADING" Old KB# 35422
Created On: 27 January 2012 Problem: How do you set environment variables in Visual COBOL? Resolution: In your Visual COBOL Project right click on on the loaded project in the solution explorer > add new item > Add a new Application Configuration File > Once added to the project right click on the App.config file and choose edit from the menu in the solution explorer window > Now you will see an Environment tab which allows you to add environment variables as needed > Once you have added the environment variables click ok. Old KB# 35421
Created On: 27 January 2012 Problem: When trying to read indexed ISAM files the user receives a file status code 37.037 File access denied (Fatal)Your attempt to access a file has been denied by the operating system. You might have tried to write to a write-protected file or you could have tried to read from an output device. Resolution: Alter the access permission on the relevant file. Access can be read-only, if you just want to read the contents of the file without making any changes, or it can be read and write in which case you can alter its contents. Is this file using LOCKTYPE=2? When using LOCKTYPE(2) the File Handler creates a separate data file with the extension .LCK, against which record locks will be held. When a COBOL program closes a file, the File Handler attempts to delete the lock file as it is no longer required. The problem arises when this delete operation coincides with another process that is attempting to open the same data file. If this process a
Created On: 17 January 2012 Problem: Associating .acu extension with 32-bit 9.1.0 Runtime is not working on 64-bit Windows. The installation was made from the 9.1.0 64-bit ACUCOBOL-GT archive as there was a need for 64-bit AcuXDBC. However, the COBOL application requires the 32-bit Runtime. When double-clicking the .acu program file it gives an error about a missing Runtime license. There are licenses for 64-bit AcuXDBC and 32-bit Runtime. The Windows file association was made again manually and specifying .acu files open with C:\\Program Files (x86)\\Micro Focus\\Acucbl910\\AcuGT\\bin\\wrun32.exe. However, when double-clicking the .acu program file, Task Manager shows that it is still starting the 64-bit Runtime in C:\\Program Files\\Micro Focus\\Acucbl910\\AcuGT\\bin\\wrun32.exe. Resolution: The file association apparently only takes the executable name and then gets the path from the registry entry here: HKEY_CLASSES_ROOT\\wrun32.exe\\Shell\\Open\\Comm
Created On: 26 January 2012 Problem: When printing through your COBOL application the user receives an error message indicating:User aborted print jobThe print job does not reach the printing queue. Resolution: This error is generated when the application cannot find the default printer or the drivers of the printer have not been installed. You will need to install your printer or update the drivers so that it is recognised by your application. Incident #2552994 Old KB# 35414
Created On: 24 January 2012 Problem: When running the Net Express projmake utility from a batch file the errorlevel check is not failing when a program error is encountered.Using the following in the batch file:projmake -buildall testproj.appif errorlevel 1 goto errorsgoto end:errorsecho "Error encountered":endecho "Done"Why, when an error occurs it is not branching to errors label? Resolution: The problem is that the projmake utility does not set the errorlevel directly based on if an error occurs somewhere in the build. Instead projmake just runs the cobol and cbllink utilities individually for each program in the project.If an error is encountered on the compile of the first program then cobol will set the errorlevel accordingly by moving the return code into a register.If this is the only program being compiled or it is the last one being compiled then it will seem like the errorlevel is being reported correctly beause the errorlevel will still
Already have an account? Login
No account yet? Create an account
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.