Browse all forums dedicated to the Rocket® COBOL product family.
Recently active
Problem: AcuSort uses field parameters offset, length, type, and order. The offset and length are easy to determine if the field is at or near the beginning of the record and there is no packed data. What if the field to be sorted on is somewhere in the middle of a very large record? Is there a simple way to determine the field parameters? Resolution: Generate an extended file descriptor (XFD) for the file by using the -Fx compile option. The 'Field Section' of the XFD includes the details about each field. Column one is the offset in bytes. Column two is the size in bytes. Column three is the data type. For example, to sort ascending on the field MORE-DATA that has this XFD description: 0000001892,0000000006,16,0000000006, 00,000,000,03, MORE-DATA (The offset is 1892 the size is 6 and the type is 16.) The AcuSort command would be: acuso
Problem: Is there a way to initialize the fields of Working-Storage at compile time? Resolution: To initialize Working-Storage at compile time, use this option: -Di This option causes the compiler to initialize Working-Storage. Normally, the compiler will initialize all data items to spaces or the value specified with the "-Dv" option, except for those items given a VALUE clause. If this option is specified, data items are initialized according to their type: Alphabetic, alphanumeric, alphanumeric edited, and numeric edited items are initialized to spaces. Numeric items are initialized to zero. Pointer items are initialized to null. Index items are initialized to the value 1. Automatic initialization applies only to Working-Storage and does not apply to any item that (a) is given a VALUE clause, (b) is EXTERNAL, or (c) is subordinate to a REDEFINES phrase. Old KB# 2718
Problem: We are doing a conversion from HP COBOL to ACUCOBOL-GT. We have code in the copylib file like below: 001400 01 [1]LOCN-M. LOCNM 001500 05 [1]LOCN-ID &nbsp ; PIC X(6). LOCNM 001600 05 [1]DESCRIPTION P IC X(30) LOCNM 001700 05 [1]LOCN-TYPE &nb sp; PIC X(4). LOCNM 001800 05 [1]REP-DRD. LOCNM 001900 10 [1]REP-DIVISION. LOCNM 002000 15 [1]REP-DIVISION-1B
Problem: If you want to work on a HP-UX 11.23 (for exemple) and you have an emulator from Ordina Denkard that emulates and MPUX (HP3000) environment, you need to relink the runtime to be able to work with the emulator and with KSAM files. Here I am just going to point out the steps you need to follow to make it work. Resolution: To do this we are going to recreate a new runtime. We do this in the lib folder. You should keep one original copy of this folder or, at least, of the files you are going to modify. First of all we are going to modify "filetbl.c" . Look for the following lines : #ifndef USE_MPE #define USE_MPE 0 #endif /* USE_MPE */ And modify them to have the following : #ifndef USE_MPE #define USE_MPE 1 #endif /* USE_MPE */ Then save the file. Now we are going to modify "Makefile". On this file we have several lines to modify, but first we are going to add one. At the begi
Problem: Is there a way verify the version of the runtime that is installed and/or being used? Resolution: The runtime has three command line options that will display differing levels of information regarding its version, serial number, number of users allowed and patches applied: -v Prints the current version number of runcbl, the serial number, and the maximum number of users licensed to use the runtime simultaneously. No program is run. -vv (double "v") Prints the current version number of runcbl, along with extended information. No program is run. -vvv (triple "v") This option is valid on UNIX systems and causes runcbl to display additional configuration information about the UNIX port. The information displayed varies depending on the UNIX system and is subject to change without notice. No program is run. Old KB# 2689
Problem: In the ACUCOBOL-GT User's Guide Version 7, Chapter 2.1.13, Miscellaneous Options, it states that -Zz can be used to convert spaces to numeric in the excerpt below. Does the -Zz option convert embedded spaces and trailing spaces as well as leading spaces in a USAGE DISPLAY numeric item to zeros? -Zz This option causes spaces in a USAGE DISPLAY numeric item to be treated as the value zero, and non-numeric data to be treated as numeric. It does this by treating the high-value half of each byte as "3" so as to bring all bytes in the variable within the range of 30 to 3F. Resolution: The following test program below demostrates that leading, trailing, and embedded spaces are all converted by utilizing the -Zz compiler option. The program was executed three times using the version 8.0.1 compiler and runtime. The following is a table that contains the inputs for each iteration and the corresponding outputs.
Problem: A program working fine on Windows OS, does not detect the Function keys being pressed when running on UNIX/Linux platforms. Modifying the a_termcap file does not provided the expected results when using PF/Function keys either. Resolution: This is a terminal emulator problem. If the emulator does not send the appropiate character string to the operating system and the OS does not forward this information to the runtime, there is no way for the runtime to pass to the program which key was pressed. The solution is to change the settings of the emulator to map the right character set and send the correct string to the program. Testing a sample program with two different emulators each emulator needs to be changed to pass the correct escape seqence strings in a different way. For example: 1) With the termincal emulation package CRT it is necesary to map the F5 through F12 keys. By def
Problem: Customer inadvertently closed the screen component toolbox in AcuBench by clicking on the small "x" in the upper right corner of the toolbox and is unable to get it to display again using the View\\Screen Component toolbox menu item or the Component toolbox push-button. Resolution: A search of the registry for CASEMAKER shows that entries for AcuBench appear in: HKEY_CURRENT_USER\\Software\\CASEMaker\\AcuBench720 This includes a sub-key of Component Toolbox. Once the AcuBench720 key was deleted and AcuBench restarted the screen component toolbox now appears correctly. Old KB# 2647
Problem: We want to have a Hint-Pop-up appearing when the user moves the mouse cursor over a Bitmap Push Button. Resolution: Usually the property 'Title' for push buttons allows us to indicate the text that we are going to show on the button. On the case we have a bitmap button, there is no text shown but a bitmap, and then using this 'Title' property we set up the text that we will have on the Hint Pop-Up for the push button. This is specially useful if you have buttons on a ToolBar. You have two variables that can affect the hints : HINTS_OFF, HINTS_ON. On version 8, we can only put hints on bitmap buttons. Old KB# 2711
Problem: Using an 8.x (8.0.0, 8.0.1, 8.1.0 alpha) compiler with the AddPercent sample program (attached) the compiler encounters and "internal error 45". Using the 7.2.x and earlier compilers the program compiles cleanly Resolution: This is fixed in 8.1 WebSync 3 by ECN-3788. A work around of not using the USE/END-USE construct can be used as well, since the cause of the problem is using a USE/END-USE construct with an ActiveX control to set multiple properties. Old KB# 2725
Problem: According to the manual, $WINHELP's "HELP-CONTENTS" opcode will have the runtime display the help file's contents. However, the following code fails to display the help file's contents, instead it displays the help file's first page. call "$WINHELP" using "APHELP.HLP", help-contents. The correct behavior can be demonstrated by double-clicking on the HLP file directly. Resolution: The following code will result in the desired behavior: call "$WINHELP" using "APHELP.HLP", 11. The information provided in the manual was correct for earlier Windows systems prior to XP, but the newer help system API now uses a different op-code and will be updated in a future version. A list of the constant values for the Microsoft "WinHelp" library routine which is called from "$WINHELP" at the URL below. http://www.smountain.com/resource/CPPWinHelp.pdf These two
Problem: With Version 8.0.0 when a COBOL program calls a function in a DLL from two different locations in the COBOL program, the second call will fail with a MAV. Resolution: Version 8.1.0 resolves this issue. This change is also available for version 8.0.0 in a patch which is attached to this article. If the 8.0.0 Runtime in use is already patched with other Engineering Change Notices (ECN) contact Supportline to determine whether this patch is appropriate. "wrun32 -v" will return "ACUCOBOL-GT runtime version 8.0.0" if it has not been patched. To apply this patch download the archive, back up the current 8.0.0 bin directory, then extract the two files to that directory. "wrun32 -v" should then report "ACUCOBOL-GT runtime version 8.0.0.943". Update: 8.0.0 WS1 is available and contains the fix. You can download it from http://supportline.microfocus.
Problem: If you try to rebuild the runtime and during the make you find out that you are missing libz.o here it is what you have to do to create it. Resolution: You need to add the following "target" to the Makefile you are using to rebuild the runtime. Preferably at the end of the file: libz.so: libz.a $(CC) $(SHAREDLIB_LDFLAGS) $(NO_UNDEFS_LDFLAGS) $(LIBRUNCBL_LDFLAGS) \\ libz.a -o libz.$(SHARED_LIB_EXT) The second and third line you are adding have to start with a TAB, no spaces. It is compulsory for any make, so please be expecially careful when adding those lines. After this addition, save the file, close it and type : make libz.so If you have renamed your Makefile, for exemple Makefile.ora type the following line make -f Makefile.or libz.so Now you only need to rebuild the runtime (make) and everything should work fine. Old KB# 2739
Problem: Is there a limit to the WORKING-STORAGE or DATA-DIVISION sections in an AcuCOBOL-GT COBOL program? Resolution: There is no actual storage limit for the WORKING-STORAGE section, but there is a 256 MB limit for the DATA-DIVISION section, which contains the WORKING-STORAGE section. This applies to versions 6.2 up to the current Extend8 product line. Old KB# 2705
Problem: If you are using an Entry-Field with a variable defined pic 9(2) and when the person is typing "03" you want it to show "03" instead of "3" on Acubench. What do you do? Resolution: The solution is a trick. On the FORMAT PICTURE field for that entry field you have to enter the following format : 99B This will make sure that the data entered will be the data shown. Fast an easy, once than we know it... Old KB# 2656
Problem: C$REGEXP library routine does not find the searched string when the program accepts the argument through an entry-field, if the argument is harcoded then it works ok. Resolution: The problem is that the regular expressions must be NULL-terminated because trailing spaces are allowed in regular expressions. It is necessary to use the following coding style when parsing: INSPECT regular-expression REPLACING TRAILING SPACES BY LOW-VALUES before to make the call to C$REGEXP library routine. Old KB# 2704
Problem: While a program is performing extensive I-O activity on Windows if an attempt is made to do any user input for the program the title on the window changes to "Not responding" and the window gray's out. Is there a way to avoid this behavior? Resolution: Prior to Version 3.2, the runtime automatically processed system events during file operations. Starting with Version 3.2, this feature was turned off by default, that is why a program can get a "Not responding" screen. The program still is running and, if the user allows it to finish, the screen turns back to "Responding" mode. Users can avoid this "Not responding" screen by setting the FILE_IO_PROCESSES_MESSAGES runtime configuration variable to 1 or by using the FILE_IO_PEEKS_MESSAGES variable set to 1. Old KB# 2735
Problem: Does Acucorp provide support to users who have upgraded to SQL 2005? Are there known issues with ACUCOBOL-GT Version 7.2 and SQL Server 2005? When does Acucorp plan to support the new SQL 2005 features? Resolution: Q) Does Acucorp provide support to users who have upgraded to SQL 2005? A) Support will be provided for customers who upgrade to Microsoft SQL Server 2005 and are using ACUCOBOL-GT Version 7.2.2 or later. Q) Are there known issues with ACUCOBOL-GT Version 7.2.2 and SQL Server 2005? A) SQL Server 2005 client software no longer provides the "ntwdblib.dll" on which both Acucorp's AcuSQL® for MSSQL and Acu4GL® for MSSQL rely. To work around this, there are two options: · Use the SQL Server 2000 client software. · Use the SQL 2005 client software as long as the "ntwdblib.dll" from the SQL 2000 client software has been
Problem: Is there any sample code that demonstrate how to obtain the number of records in a Vision file? Resolution: *Use the "filesys.def" copy file, which is included with the *ACUCOBOL-GT product distribution. Working-Storage Section. 01 the-filename pic x(15). 01 the-filename-full pic x(250). 01 num-recs-in-file pic 9(9). 01 the-file-handle usage is pointer. copy "filesys.def". Procedure Division. move "my_file.dat" to the-filename. move 500 to max-rec-size. move 500 to min-rec-size. move 3 to num-keys. * Use runtime logic to find the full path of the fi
Problem: The following steps can be done if an "Unexpected Acushare Error" occurs: Resolution: The error "Unexpected Acushare error" is caused by the runtime starting and finding a message in the Acushare queue, sometimes as a result of an ungraceful exit by a previous runtime. When the runtime starts, it sends a message to Acushare, and if it finds a message in the queue, it returns the "unexpected" message. Our Development Department advises that this is a known problem and has been difficult to determine the cause. The Developers have some suggestions about how to minimize the number of occurrences of this error: 1) Set the kernel parameters according to our "OS Kernel Parameter Settings" document attached to this KB Item. 2) Stop and start Acushare periodically. Several customers have found relief by stopping and restarting Acushare, some as an overnight kron job. 3) Use t
Problem: For some reports it is desirable to directly control the format of the printout using embedded control codes from a printer control language (PCL) or page description language (PDL). Resolution: Getting Started with ACUCOBOL-GT Version 8.0 Chapter 2: Windows Installation > 2.5 Printing and Spooler Issues > 2.5.2 Direct Control If it is desirable to control the format of the printout by directly using embedded control codes, simply assign the print file to "-P SPOOLER-DIRECT" or to "-Q <printername>" using the "DIRECT=ON" option. For example, to assign the print job "PRINTER1" to the spooler and retain direct control over formatting, enter the following line in your COBOL configuration file ("CBLCONFI"): PRINTER1 -P SPOOLER-DIRECT Or, use the following command to assign PRINTER1 to the spooler for printing to a specific printer while retaining
Problem: Runtime receives an error that NTWDBLIB.DLL is not found when attempting to access an Microsoft SQL Server database using Acu4GL for MSSQL. Resolution: NTWDBLIB.DLL is part of the Microsoft SQL Server client software that is required by Acu4GL for MSSQL version 7.x and earlier. There are 2 possible reasons why this error is being generated: 1) AcuSQL for MSSQL has been installed, rather than Acu4GL for MSSQL; 2) Acu4GL for MSSQL Server is installed, but the Client Communication software from Microsoft SQL Server has not. The resolution(s) to this error are to either: 1) install the Microsoft SQL Server 2000 client software on the machine 2) copy the ntwdblib.dll from a machine with an existing Microsoft SQL Server 2000 client installation, placing the copied DLL into the bin directory with the ACUCOBOL-GT runtime and Acu4GL for MSSQL. Note that for the second resolution to work Microsoft Data Access Component's (MDAC) need
Problem: The documentation is unclear on what other steps need to be taken to delete a record from a grid control other than using the "RECORD-TO-DELETE" clause. Specifying this always deletes the first record, starting with the header row. Resolution: The secret is using the cursor-x and cursor-y properties of the grid control. Below is an example of the code necessary for deleting a specific record in a grid: delete-record. inquire grid-1, cursor-x in grid-x, cursor-y in grid-y. modify Grid-1, RECORD-TO-DELETE grid-y. This example assumes the record where the cursor resides in the grid is the one that is to be removed from the grid: Attached is a zip archive containing a sample program, and its accompanying copybooks, that demonstrates this code usage. When running the program, after clicking on a cell, press the [Delete] push-button. Regardless of the c
Problem: Is there a command like UNIX "file" to get information about compiled COBOL objects? Resolution: The ACUCOBOL-GT development system has a utility named cblutil (cblutl32.exe on Windows) that can be used with the "-info" flag to provide this type of information, e.g.: C:\\test\\C$system\\Object>cblutl32 -info Program1.acu Program1.acu: size: 3580 (DFC), v8.0, VAX-mode, debug (24-Jan-2008 09:32:58) With 7.x versions of cblutil the -x flag can also be used to provide even more information: C:\\test\\C$system\\Object>cblutl32 -info -x Program1.acu Program1.acu: size: 3580 (DFC), v8.0, VAX-mode, debug (24-Jan-2008 09:32:58) ccbl -o .\\object\\@.acu -x -Ga -Sp C:\\test\\C$system\\screen;C:\\test\\C$system\\copylib;C:\\test\\C$system\\report;C:\\test $system\\resource;C:\\test\\C$system\\fd;C:\\Program Files\\Acucorp\\Acucbl800\\AcuGT\\sample\\def;C:\\test\\C$system\\Screen
Problem: The following resolution describes how to assign values to Ctrl C, Ctrl X, and Ctrl V in order to copy, cut and paste text from controls in graphical user interface COBOL programs and send output to the Windows API. Resolution: To use the ctrl-key combinations, it is possible to programmatically assign any value to these functions by using format 13 of the SET verb. So, for example, you wanted to assign the keys for copy, cut and paste to be Ctrl C, Ctrl X and CTRL V the following code would be needed in the program: SET EXCEPTION VALUE 3 TO COPY-SELECTION. SET EXCEPTION VALUE 24 TO CUT-SELECTION. SET EXCEPTION VALUE 22 TO PASTE-SELECTION. The exception values here are the default values assigned to Ctrl C, Ctrl X and Ctrl V. It is also possible to assign different values to these keys through the configuration file because the value returned for Ctrl C (3) is by default the same if a user pressed Function Key 3.
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.