NetCOBOL for .NET V4.1.0 Software Release Guide



Comments



Description

B1WD-S027-01ENZ0(01) November 2010 Windows NetCOBOL for .NET V4.1.0 Software Release Guide Enterprise Edition Preface Export Regulation Exportation/release of this software may require necessary procedures in accordance with the regulations of the Foreign Exchange and Foreign Trade Control Law of Japan and/or US export control laws. Trademarks - Microsoft, Windows, Access, SQL Server, Visual Studio and IntelliSense are registered trademarks, and Windows Server and the .NET logo are trademarks of Microsoft Corporation in the United States and/or other countries. - NetCOBOL is a trademark or registered trademark of Fujitsu Limited or its subsidiaries in the United States or other countries or in both. - Oracle is a registered trademark, and Oracle 8 is a trademark of Oracle Corporation. - IBM and DB2 are registered trademarks, and DB2 Universal Database is a trademark of IBM Corporation in the United States and/ or other countries. - Citrix and MetaFrame are trademarks or registered trademarks of Citrix Systems Inc. in the USA. - Adobe, Acrobat, Acrobat Reader, and Acrobat logo are either registered trademarks or trademarks of Adobe Systems Incorporated in the United States and/or other countries. - Pervasive, Pervasive Software, Pervasive PSQL, Btrieve and Pervasive Software logo are either registered trademarks or trademarks of Pervasive Software Incorporated in the United States and/or other countries. - Other company names or product names are the trademarks or registered trademarks of each company respectively. Product names The names of products described in this manual are abbreviated as follows: Product Name Abbreviation Windows(R) 7 Home Premium Windows(R) 7 Professional Windows(R) 7 Enterprise Windows(R) 7 Ultimate Windows 7 Windows Vista(R) Home Basic Windows Vista(R) Home Premium Windows Vista(R) Business Windows Vista(R) Enterprise Windows Vista(R) Ultimate Windows Vista Microsoft(R) Windows(R) XP Professional operating system Microsoft(R) Windows(R) XP Home Edition operating system Windows XP Microsoft(R) Windows Server(R) 2008 Standard Microsoft(R) Windows Server(R) 2008 Standard without Hyper-V(TM) Microsoft(R) Windows Server(R) 2008 Enterprise Microsoft(R) Windows Server(R) 2008 Enterprise without Hyper-V(TM) Microsoft(R) Windows Server(R) 2008 Foundation Windows Server 2008 - i - Product Name Abbreviation Microsoft(R) Windows Server(R) 2008 Datacenter Microsoft(R) Windows Server(R) 2008 Datacenter without Hyper-V TM Microsoft(R) Windows Server(R) 2008 R2 Standard Microsoft(R) Windows Server(R) 2008 R2 Enterprise Microsoft(R) Windows Server(R) 2008 R2 Foundation Microsoft(R) Windows Server(R) 2008 R2 Datacenter Windows Server 2008 R2 or Windows Server 2008 Microsoft(R) Windows Server(R) 2003, Standard Edition Microsoft(R) Windows Server(R) 2003, Enterprise Edition Windows Server 2003 Microsoft(R) Windows Server(R) 2003 R2, Standard Edition Microsoft(R) Windows Server(R) 2003 R2, Enterprise Edition Windows Server 2003 R2 or Windows Server 2003 Microsoft(R) Windows Server(R) 2003, Standard x64 Edition Microsoft(R) Windows Server(R) 2003, Enterprise x64 Edition Windows Server 2003 (x64) Microsoft(R) Windows Server(R) 2003 R2, Standard x64 Edition Microsoft(R) Windows Server(R) 2003 R2, Enterprise x64 Edition Windows Server 2003 R2 (x64) or Windows Server 2003 (x64) Microsoft(R) Visual Studio(R) 2010 Professional Edition Microsoft(R) Visual Studio(R) 2010 Premium Edition Microsoft(R) Visual Studio(R) 2010 Ultimate Edition Visual Studio 2010 Microsoft(R) MSDN Library for Visual Studio 2010 MSDN Library Microsoft(R) .NET Framework 2.0 .NET Framework 2.0 Microsoft(R) .NET Framework 3.0 .NET Framework 3.0 Microsoft(R) .NET Framework 3.5 .NET Framework 3.5 Microsoft(R) .NET Framework 4 .NET Framework 4 Microsoft(R) Intellisense(R) Technology Intellisense The contents of this manual may be revised without prior notice. No part of this document may be reproduced or transmitted in any form or by any means, electronic or mechanical, for any purpose, without the express written permission of Fujitsu Limited. Copyright 2002-2010 FUJITSU LIMITED - ii - Contents Chapter 1 Product Overview....................................................................................................................................................1 Chapter 2 Product Documentation...........................................................................................................................................2 Chapter 3 Related Products.....................................................................................................................................................3 3.1 Software...............................................................................................................................................................................................3 3.2 Database Access Environment.............................................................................................................................................................3 3.2.1 ADO.NET data provider ..............................................................................................................................................................3 3.2.2 ODBC driver ................................................................................................................................................................................4 3.3 Btrieve Files ........................................................................................................................................................................................4 Chapter 4 Restrictions..............................................................................................................................................................5 4.1 NetCOBOL Compiler..........................................................................................................................................................................5 4.1.1 PROPERTY setter for static fields with INITONLY compiler directive ....................................................................................5 4.1.2 COPY Statement ..........................................................................................................................................................................5 4.1.3 Class names and ALPHAL(AUTO) ............................................................................................................................................5 4.1.4 Academic Edition ........................................................................................................................................................................5 4.2 Debug...................................................................................................................................................................................................5 4.3 ASP.NET ............................................................................................................................................................................................6 4.4 SQL CLR.............................................................................................................................................................................................6 4.5 In-Process Side-by-Side.......................................................................................................................................................................6 4.6 Development Environment..................................................................................................................................................................6 4.6.1 V2.x project files...........................................................................................................................................................................6 4.6.2 Building a web site.......................................................................................................................................................................6 Chapter 5 Migration notes........................................................................................................................................................7 5.1 Applications compiled with an earlier version of NetCOBOL for .NET............................................................................................7 Chapter 6 Notes.......................................................................................................................................................................8 6.1 Specifications.......................................................................................................................................................................................8 6.1.1 Division by Zero ..........................................................................................................................................................................8 6.1.2 Overflow of Floating-point Items ................................................................................................................................................8 6.1.3 Printing..........................................................................................................................................................................................8 6.1.4 Btrieve File ..................................................................................................................................................................................8 6.1.5 Using NetWare Server .................................................................................................................................................................8 6.1.6 Using Tlbimp.exe .........................................................................................................................................................................8 6.1.7 Redefine the data for printing ......................................................................................................................................................8 6.1.8 Using IntelliSense ........................................................................................................................................................................8 6.2 Using the ADO.NET data provider interface to access remote databases...........................................................................................9 6.2.1 Using SQL Server ........................................................................................................................................................................9 6.2.2 Using Oracle database .................................................................................................................................................................9 6.2.3 Using Microsoft Access ...............................................................................................................................................................9 6.3 Using the ODBC interface to access remote databases.......................................................................................................................9 6.3.1 Using the Pervasive PSQL ODBC drivers ..................................................................................................................................9 6.3.2 Using Microsoft Access Driver ODBC drivers ...........................................................................................................................9 6.3.3 Using the ODBC Cursor Library .................................................................................................................................................9 6.3.4 Host Variable Declarations ..........................................................................................................................................................9 6.3.5 MARS function.............................................................................................................................................................................9 6.3.6 SQL CLR database objects.........................................................................................................................................................10 6.3.7 DELETE statement (positioned)/UPDATE statement (positioned)...........................................................................................10 6.4 Using Btrieve Files - Development...................................................................................................................................................10 6.5 Runtime Environment Setup Utility..................................................................................................................................................10 6.5.1 Connection string for an Oracle database...................................................................................................................................10 6.5.2 Creating ODBC data source.......................................................................................................................................................10 6.5.3 Executing the Runtime Environment Setup Utility on a 64-bit system......................................................................................10 6.5.4 The runtime environment setup utility started from...................................................................................................................10 - iii - 6.6 Development Environment................................................................................................................................................................10 6.6.1 Coexistence with older versions of the NetCOBOL for .NET development package ..............................................................10 6.6.2 Project Properties .......................................................................................................................................................................11 6.6.3 Web Project ................................................................................................................................................................................11 6.6.4 Upgrade of project files from older versions .............................................................................................................................11 6.6.5 Data source.................................................................................................................................................................................11 6.6.6 FolderName Property of Web References .................................................................................................................................11 6.6.7 Name Space of Source Generated Under Web References .......................................................................................................11 6.6.8 The Application Configuration File and Runtime Initialization File ........................................................................................12 6.6.9 Abnormal termination of Visual Studio when a component is double-clicked on the component designer .............................12 6.6.10 Debugging the WCF Service Library ......................................................................................................................................12 6.6.11 Resource Designer ...................................................................................................................................................................12 6.6.12 Client-only Framework subset .................................................................................................................................................12 6.6.13 Publishing ................................................................................................................................................................................12 6.6.14 Reference settings of the project ..............................................................................................................................................12 6.6.15 Exporting Templates ................................................................................................................................................................12 6.7 WSDL................................................................................................................................................................................................12 6.7.1 Compilation of XML Web service client source........................................................................................................................12 6.7.2 Generation of XML Web service client source..........................................................................................................................13 6.8 svcutil.................................................................................................................................................................................................13 6.8.1 Compilation of WCF service client source.................................................................................................................................13 6.8.2 Generation of XML Web service client source..........................................................................................................................13 6.9 Debugger............................................................................................................................................................................................13 6.9.1 Proxy Objects .............................................................................................................................................................................13 6.9.2 Displaying Data Items in the Debugger .....................................................................................................................................13 6.9.3 Field or Property Names Differing Only in Case ......................................................................................................................13 6.9.4 Breakpoints.................................................................................................................................................................................13 6.9.5 Copy Books ................................................................................................................................................................................13 6.10 Incompatibilities .............................................................................................................................................................................13 6.10.1 Upgrading V1.x project............................................................................................................................................................13 6.10.2 Error opening Windows Forms created in version V2.1 or earlier ..........................................................................................14 6.10.3 Correction of problem with nonnumeric literals in embedded SQL statements ......................................................................14 6.10.4 Private methods are non-virtual ...............................................................................................................................................14 6.10.5 Code editor cursor position ......................................................................................................................................................14 6.10.6 Web project ..............................................................................................................................................................................15 6.10.7 Specifying the assembly name for entry information ..............................................................................................................15 6.10.8 The shift of the build system to MSBuild ................................................................................................................................15 6.10.9 Calling a method of an array object .........................................................................................................................................16 6.10.10 Object signatures of multi-dimensional arrays ......................................................................................................................16 6.10.11 Custom marshaller support.....................................................................................................................................................16 6.10.12 RCS compiler directive...........................................................................................................................................................16 6.10.13 /WC compiler options.............................................................................................................................................................16 6.10.14 BINARY-CHAR UNSIGNED Correspondence ...................................................................................................................17 6.10.15 Referencing Integer Data Types ............................................................................................................................................17 6.10.16 Processing of Conditional Variables ......................................................................................................................................17 6.10.17 The install folder of the Runtime System ..............................................................................................................................18 6.10.18 Predefined object identifier SUPER.......................................................................................................................................18 6.10.19 Code of super-class constructor invocation in constructor method .......................................................................................18 6.10.20 The exception handling generated from the CALL identifier................................................................................................18 6.10.21 Compiler error message JMN2320I-S ...................................................................................................................................18 6.10.22 Retrieval result of the SEARCH statement (SEARCH ALL) ...............................................................................................19 6.10.23 Retrieval result of the SEARCH statement (SEARCH ALL with RCS compile option) ......................................................19 6.10.24 Checking for property access attributes .................................................................................................................................19 6.10.25 The first or last character of a national user-defined word ....................................................................................................19 6.10.26 Retrieval result of the SEARCH statement (SEARCH ALL with the key item of the WHEN phrase) ................................19 6.10.27 Compilation that specifies compiler options BINARY and OPTIMIZE ...............................................................................20 6.10.28 Compilation that specifies compiler options BINARY and TRUNC ....................................................................................20 6.10.29 Compilation that uses compiler option BINARY and intrinsic functions .............................................................................21 - iv - 6.10.30 Binary item move when compiler option BINARY is specified ...........................................................................................21 6.10.31 Specified error of Concatenating Files ..................................................................................................................................21 6.10.32 The I-O status value '04' of variable length record sequential files .......................................................................................21 6.10.33 COBOL File Utility ...............................................................................................................................................................22 6.10.34 Time difference information that CURRENT-DATE returns ...............................................................................................22 6.10.35 WRITE statement with AFTER/BEFORE ADVANCING phrase.........................................................................................22 6.10.36 Location of SQLCODE/SQLMSG/SQLERRD definition.....................................................................................................22 6.10.37 Debugger function/display......................................................................................................................................................23 6.10.38 Change in Call Stack exception information display..............................................................................................................23 6.10.39 Itanium-based system support................................................................................................................................................24 6.11 Other Notes......................................................................................................................................................................................24 6.11.1 License acquisition ..................................................................................................................................................................24 6.11.2 Using a related product in the same environment as Visual Studio 2010 ...............................................................................24 6.11.3 JMN3496I-W message no longer issued .................................................................................................................................24 6.11.4 JMN3448I-W message no longer issued .................................................................................................................................24 6.11.5 Using ODBC data administrator on 64-bit computer ..............................................................................................................24 6.11.6 Replacing an Application .........................................................................................................................................................25 6.11.7 Updating Visual Studio 2010 or installing another edition of Visual Studio 2010 .................................................................25 - v - Chapter 1 Product Overview NetCOBOL for .NET Enterprise Edition V4.1 is a COBOL development system supporting Microsoft .NET Framework 4 under Windows XP, Windows Server 2003, Windows Vista, Windows Server 2008, and Windows 7. - 1 - Chapter 2 Product Documentation NetCOBOL for .NET is composed of COBOL development software and associated manuals: - NetCOBOL Language Reference (in PDF) - NetCOBOL for .NET User's Guide (in Visual Studio 2010 Help format) - NetCOBOL for .NET Messages (in Visual Studio 2010 Help format) The "NetCOBOL for .NET" entry in the Microsoft Visual Studio 2010 Help (reached by selecting Help | View Help, clicking on Library Home in the left panel, and clicking on the NetCOBOL for .NET entry) includes the NetCOBOL for .NET User's Guide and the NetCOBOL for .NET Messages documentation. Note: Some document links may not function correctly if the locale setting of Visual Studio differs from the locale of the Operating System. - 2 - Chapter 3 Related Products 3.1 Software Software Requirement Remarks Operating System Windows XP SP3 or later (32-bit only) Information on abends and just-in-time debugging. Windows Server 2003 SP2 or later Windows Server 2003 R2 Windows Server 2003 (x64) SP2 or later Windows Server 2003 R2 (x64) Windows Vista SP2 or later (32-bit only) Windows Server 2008 SP2 or later Windows Server 2008 R2 Windows 7 PowerBSORT V3.0 or later Provides high performance SORT/MERGE support. The platforms supported by PowerBSORT can be found on the PowerBSORT product page at http:// www.netcobol.com/ Visual Studio 2010 Visual Studio Shell, Professional edition, Premium edition, or Ultimate edition The Visual Studio Shell is provided with NetCOBOL for .NET. See the Overview Software Release Guide to determine if you need to install a different edition of Visual Studio, purchased separately. Windows SDK Microsoft Windows SDK for Windows 7 and .NET Framework 4 (v7.1) Windows SDK v7.1 is required if you use the Visual Studio 2010 Shell. If you use another edition of Visual Studio 2010, you do not need to install Windows SDK separately, because it is included in other editions. 3.2 Database Access Environment Databases can be accessed using the following drivers: - ODBC driver - ADO.NET Data Provider Some problems and limitations may be caused by differences between the drivers and the NetCOBOL for .NET database access function. Database access operation and results cannot be guaranteed for all combinations of drivers, databases, and COBOL applications. Verify that the combination of driver, database, and COBOL application that you are using works correctly. NetCOBOL for .NET has verified correct operation of the following combinations: 3.2.1 ADO.NET data provider ADO.NET data provider Database Microsoft .NET Framework Data Provider for SQL Server Microsoft SQL Server 2008 Microsoft SQL Server 2005 Microsoft .NET Framework Data Provider for Oracle Oracle Database 11g Release1 Enterprise Edition (11.1.0) - 3 - ADO.NET data provider Database Oracle Database 10g Release2 Enterprise Edition (10.2.0) Microsoft .NET Framework Data Provider for OLE DB IBM DB2 v9.7 Microsoft Access 2007 Microsoft .NET Framework Data Provider for ODBC IBM DB2 v9.7 3.2.2 ODBC driver ODBC driver Database Microsoft SQL Server Native Client 10.0 ODBC driver Microsoft SQL Server 2008 Microsoft SQL Native Client ODBC driver Microsoft SQL Server 2005 Microsoft Access ODBC driver Microsoft Access 2007 Microsoft Access 2003 Oracle ODBC driver release 11.01.00.01 Oracle Database 11g Release1 Enterprise Edition (11.1.0) Oracle ODBC driver release 10.02.00.01 Oracle Database 10g Release2 Enterprise Edition (10.2.0) IBM DB2 ODBC driver IBM DB2 V9.7 IBM DB2 V9.5 Pervasive PSQL ODBC driver Pervasive PSQL V10 SP3 Pervasive PSQL V9 SP2 3.3 Btrieve Files Btrieve files can be accessed using input-output statements. NetCOBOL for .NET verifies the operations for the following combinations: - Pervasive PSQL v10 - Pervasive PSQL v9 - 4 - Chapter 4 Restrictions 4.1 NetCOBOL Compiler 4.1.1 PROPERTY setter for static fields with INITONLY compiler directive When the INITONLY compiler directive is set and class definitions are compiled, static PROPERTY clauses must be specified WITH NO SET. 4.1.2 COPY Statement A compile unit cannot end in a COPY statement. If an END PROGRAM statement is present in a COPY file at the end of the compile unit, compiler errors and using the COBOL Debugger do not function correctly. 4.1.3 Class names and ALPHAL(AUTO) If you refer to one class from another class within the same assembly, case sensitivity of the class names may be an issue, even if the ALPHAL(AUTO) compiler directive is used. If you receive one of the following errors: JMN3334I-S, JMN5706I-S or internal error (Code:1006, ...), verify that the class names match exactly. 4.1.4 Academic Edition Academic Edition cannot be used to develop a 64-bit application. 4.2 Debug Visual Studio hosting process The hosting process feature cannot be used even if it is enabled. Enable the Visual Studio hosting process on a project designer's Debug page. System class object reference item property evaluation The property or field value of a system class object reference item may not be able to be evaluated if either the system or the application has not been completely initialized. Exception Assistant The Exception Assistant feature is not supported. Edit and Continue feature The Edit and Continue feature is not supported. object members Variable watch windows will not use custom visualizers to display object members. Arithmetic expressions When arithmetic expressions are evaluated in the debugger, the evaluation results may be different from those produced by executing the COBOL program for the following reasons: - When the expression consists only of binary items, native binary operations are used. - When the expression contains decimal data other than binary items, all operands are converted to packed decimal before the expression is evaluated. - 5 - - The evaluation results may be floating point data if exponents or floating point items (or constants) are contained in the expression. - Evaluation results may differ when intermediate results exceed 30 digits. Free format If the COBOL source is in free format and the DATA DIVISION and PROCEDURE DIVISION are defined in one line, break points may not function correctly. Property evaluation and other implicit function calls When data is evaluated by the debugger, the automatic property evaluation and other implicit function calls are always valid. 4.3 ASP.NET Code declaration blocks (<script runat="server">), code render blocks (<% %>) and MasterType directive (<@MasterType>) in ASP.NET pages are not supported. Therefore, some pages in the 'Web' sub folder example do not work in this version. 4.4 SQL CLR SQL CLR development is not supported in NetCOBOL for .NET V4.1 at this point, because currently SQL Server 2008 does not support SQL CLR for .NET Framework 4 while .NET Framework 4 is the only target of NetCOBOL for .NET V4.1. Use NetCOBOL for .NET V4.0 to develop SQL CLR. 4.5 In-Process Side-by-Side In-Process Side-by-Side cannot be used. Use the same version of .NET Framework in the process. 4.6 Development Environment 4.6.1 V2.x project files Project files created by V2.x cannot be opened in V4.1. Open V2.x project files in NetCOBOL for .NET V4.0 and upgrade them to V4.0 files. V4.0 projects can be opened in NetCOBOL for .NET V4.1. 4.6.2 Building a web site If .NET Framework 3.5 is selected as the target framework, the following errors may occur when the "Build Web Site" command is run: : Build (web): Object reference not set to an instance of an object. To resolve this error, open the Web.site file and remove the following elements from <system.codedom>-<compilers> in the Web.config: <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" warningLevel="4"> <providerOption name="CompilerVersion" value="v3.5"/> <providerOption name="WarnAsError" value="false"/> </compiler> <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.VisualBasic.VBCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" warningLevel="4"> <providerOption name="CompilerVersion" value="v3.5"/> <providerOption name="OptionInfer" value="true"/> <providerOption name="WarnAsError" value="false"/> </compiler> - 6 - Chapter 5 Migration notes 5.1 Applications compiled with an earlier version of NetCOBOL for .NET Applications that were created with NetCOBOL for .NET v3.5 or earlier cannot be run in the current version of NetCOBOL for .NET. Rebuild the applications with NetCOBOL for .NET V4.0 or later. For more information, see "Executing applications with NetCOBOL for .NET V4.1" in the NetCOBOL for .NET User's Guide. - 7 - Chapter 6 Notes 6.1 Specifications 6.1.1 Division by Zero A System.DivideByZeroException exception occurs when the value of the divisor becomes 0 and an arithmetic expression that does not specify ON SIZE ERROR is executed. 6.1.2 Overflow of Floating-point Items If the value of a single or double precision floating-point item overflows, the value of the item or calculation is unpredictable. 6.1.3 Printing When a program for printing documents is executed, the printing results may produce the following errors: - If a form overlay pattern is output, the overlay characters may not print correctly. In this case, open the Properties for the printer driver, and find the setting equivalent to "Always Spool RAW Data"; this will enable printing of valid overlay characters. - When specifying @CBR_TextAlign, set TYPE2 for @CBR_PrintTextPosition. If @CBR_PrintTextPosition is not specified, or if TYPE1 is set, the data may not be printed at the correct line position. 6.1.4 Btrieve File The file path name cannot include spaces. 6.1.5 Using NetWare Server When you use NetWare Server Storage Library, you may fail to access the library. If so, forward the library to the client. 6.1.6 Using Tlbimp.exe You cannot import a type library using Tlbimp.exe when a COM server created with NetCOBOL for Windows or Fujitsu COBOL returns the VT_DECIMAL type as a return value. 6.1.7 Redefine the data for printing A level S compiler error is output when a data item with a CHARACTER TYPE clause or PRINTING POSITION clause is redefined by the REDEFINES clause. The CHARACTER TYPE clause or PRINTING POSITION clause dictates the printing information for the data item. If such data is redefined, the data item cannot be printed correctly because the printing information can only be specified once for a data item. 6.1.8 Using IntelliSense IntelliSense uses parsing technology to try to detect errors, and to suggest completions of source code constructs as they are typed into the editor. IntelliSense features are somewhat unreliable, because the IntelliSense parser must try to compensate for code that is incomplete or that contains errors. For this reason, IntelliSense should be viewed as a coding aid and should not be relied upon as the only mechanism for writing code, since limitations in this special parser may mean that IntelliSense is not always available. - 8 - 6.2 Using the ADO.NET data provider interface to access remote databases 6.2.1 Using SQL Server - The FOR UPDATE phrase cannot be specified for the cursor declaration. Please delete the FOR UPDATE phrase from the cursor declaration statement or specify DISABLE for @SQL_ADONET_FORUPDATE_CLAUSE. - Only SQL Server can be accessed from "Microsoft .NET Framework Data Provider for SQL Server". 6.2.2 Using Oracle database - Only Oracle database can be accessed from "Microsoft .NET Framework Data Provider for Oracle". - Oracle database cannot be accessed from "Microsoft .NET Framework Data Provider for ODBC". - When using Microsoft .NET Framework Data Provider for Oracle, specify RCS(UTF8-UCS2) or RCS(ACP-UCS2) for the compiler directive when you associate the National item with the NCHAR type of the Oracle database. If the RCS(ACP) compiler directive is specified, an error may be displayed when calling a stored procedure. - The LOB type cannot be used. 6.2.3 Using Microsoft Access - The only data provider that can access the Microsoft Access is the "Microsoft .NET Framework Data Provider for OLE DB". - Do not specify the password for @SQL_PASSWORD. - Use "Microsoft OLE DB Provider for Microsoft Jet" for the connection to Access when using ADO.NET. 6.3 Using the ODBC interface to access remote databases 6.3.1 Using the Pervasive PSQL ODBC drivers Specify "OFF" for a value of @SQL_MULTIPLE_ROWS (set specification of two or more lines) with Pervasive PSQL v9 SP2 or Pervasive PSQL v10 SP1, since these versions of Pervasive do not support table or two or more line specified host variables. 6.3.2 Using Microsoft Access Driver ODBC drivers - The PACKED-DECIMAL item cannot be used. - The cursor function cannot be used with the DELETE statement (positioned) or the UPDATE statement (positioned). 6.3.3 Using the ODBC Cursor Library If an error occurs when "@SQL_ODBC_CURSORS=USE_ODBC" is specified in the SQL information to use the ODBC cursor library, specify @SQL_ODBC_CURSORS=USE_DRIVER. 6.3.4 Host Variable Declarations The total number of host variable declarations is limited. If the limit is exceeded, the compiler outputs JMN2759I-U and stops compilation. To avoid this problem, limit the number of host variables declared to 10,000. 6.3.5 MARS function The MARS function can only be used by "SQL Native Client Driver". - 9 - 6.3.6 SQL CLR database objects "SQL CLR database objects" cannot be called. 6.3.7 DELETE statement (positioned)/UPDATE statement (positioned) Specify STATIC, KEYSET_DRIVEN or DYNAMIC for @SQL_CURSOR_TYPE in your application if the DELETE statement (positioned) or the UPDATE statement (positioned) is used. 6.4 Using Btrieve Files - Development To use Btrieve files and Pervasive PSQL, you need to purchase and install Pervasive PSQL. 6.5 Runtime Environment Setup Utility 6.5.1 Connection string for an Oracle database When setting a connection string for an Oracle database using the runtime environment setup utility for a 32-bit environment on a 64-bit system (WOW64), a connection error may occur when testing the connection. 6.5.2 Creating ODBC data source When a new ODBC data source is created using the Connection String Builder (for ODBC data provider) dialog box, an ODBC driver may cause an error. In this case, create the ODBC data source by using the ODBC data source administrator. 6.5.3 Executing the Runtime Environment Setup Utility on a 64-bit system The runtime environment differs between 32-bit and 64-bit systems. The runtime environment should be set up using the Runtime Environment Setup Utility corresponding to the platform of the application on which it will run. If you set up the runtime environment for 32-bit applications on a 64-bit system, use the Runtime Environment Setup Utility for a 32-bit environment. 6.5.4 The runtime environment setup utility started from Visual Studio 2010 always runs in a 32-bit environment. When you set up the runtime environment for a 64-bit application, start the Runtime Environment Setup Utility for a 64-bit environment from the Start menu. 6.6 Development Environment 6.6.1 Coexistence with older versions of the NetCOBOL for .NET development package The NetCOBOL for .NET runtime system is set to use the latest version during installation - it is set so that the V4.0 runtime is used when NetCOBOL for .NET V4.0 is installed. However, .NET Framework 2.0 or later is required by the NetCOBOL for .NET V4.0 runtime, and does not operate on previous versions of the .NET Framework. Therefore, when V4.0 is installed, applications cannot be debugged or executed on .NET Framework v1.1 or earlier. To continue running programs compiled with NetCOBOL for .NET v2.1, perform the following steps: - Delete the assembly policy files. The .NET Framework uses "Assembly Policy Files" to redirect requests for a particular version of an assembly from the global assembly cache (GAC) to a different version. When an application compiled against NetCOBOL for .NET V2.1 is executed, by default the runtime will load the V4.0 version of the runtime because policy files were installed redirecting all previous NetCOBOL for .NET versions to V4.0. In order to continue development in both NetCOBOL for .NET V2.1 and V4.0, you must delete the policy redirection files that dictate the loading behavior of requests for V2.1 assemblies. Refer to the User's Guide for general notes on running applications made using an older version of NetCOBOL for .NET. - 10 - To delete the publisher policy files for NetCOBOL for .NET from the global assembly cache, perform the following: 1. Open the global assembly cache folder in Windows Explorer. The folder is located in the Windows folder under Assemblies. 2. Select the assemblies that start with the following character strings from among the list: policy.[n].[m].Fujitsu.COBOL where [n] and [m] correspond to the major and minor version numbers of the assembly. For instance, the policy files for V2.1 are comprised of the following files: policy.2.1.Fujitsu.COBOL policy.2.1.Fujitsu.COBOL.InteropServices.Win32 3. Right-click with the assembly selected, and select the Delete command to remove the assembly from the global assembly cache. 6.6.2 Project Properties Settings are not immediately reflected in the source when using the project designer's Settings page and Resources page. When changing items from the Settings page, the Settings.settings item in the Properties folder is selected, and the Run Custom Tool command is run. When setting from the Resources page, save the .resx file, select the .resx file item, and run the Run Custom Tool command. 6.6.3 Web Project The "Enable strong naming on precompiled assemblies" option of the Publish Web Site command is not supported in the Microsoft Visual Web Developer 2010 support in NetCOBOL for .NET. 6.6.4 Upgrade of project files from older versions Any project created after V2.0 can be opened in NetCOBOL for .NET V4.0. However, project files created prior to V1.1 cannot be opened. These Web projects must be manually upgraded. Refer to the User's Guide for details. 6.6.5 Data source - When creating a data source, two or more data sources cannot be created using the same connection. - A data source cannot be put on the Windows form and the Web form. 6.6.6 FolderName Property of Web References - The FolderName property of Web References is used as a subfolder name to store the file that the Web reference generates. Therefore, only characters allowed for folder names can be used. The generation of the content of the Web References will fail if an invalid folder name is given. If this happens, correcting the folder name will trigger the creation of the Web References content. - An initial value for the FolderName property of a newly added Web reference is generated based on the URL reference of the Web site. If this results in an invalid folder name, the contents under Web References will not be added until the folder name is corrected. 6.6.7 Name Space of Source Generated Under Web References When a Web reference is inserted, the system generates a client source file for the XML Web service offered by the referenced Web site. The name space of the client source is based on the FolderName property of the Web reference, with the following changes: - Characters that are not alphabetic, numeric, a period or an underscore are replaced with an underscore. - If the FolderName property starts with a numeric character, an underscore is inserted as the first character, before the numeric character. - If a period is immediately followed by a numeric character, an underscore is inserted between the period and the numeric character. - 11 - 6.6.8 The Application Configuration File and Runtime Initialization File When the output folder of two or more projects is the same, if an application configuration file or a runtime environment initialization file (cobol85.cbr) is added to both projects, then the application configuration file or the runtime initialization file in the output folder will depend on the order in which the projects were built. This is due to the application configuration file or the runtime initialization file defined in the project being copied to the output folder when the project is built. To avoid this problem, add only an application configuration file or a runtime environment initialization file to the main project. 6.6.9 Abnormal termination of Visual Studio when a component is double- clicked on the component designer The designer displays an error message when the name of the component event handler that the designer generated automatically is not a COBOL word (the name exceeds 30 characters). Visual Studio terminates abnormally when the component is double-clicked on the component designer, the event handler is generated automatically, or the name of the event handler is not a COBOL word. Refer to "Notes for Working with Designer-Generated COBOL Code" in the User's Guide for handling this issue. 6.6.10 Debugging the WCF Service Library When debugging the WCF Service Library, the WCF Test Client does not launch if a folder other than the project folder is specified for the "output path" of the project properties by a relative path. This situation can be avoided by specifying a full path for the "output path." 6.6.11 Resource Designer When creating/editing image files or icon files on the "Resources" page of the Project Designer, you cannot use the standard resource editor for Visual Studio 2010 if you use the Visual Studio 2010 Shell which is included with NetCOBOL for .NET. By default, images are used by the standard Paintbrush for Windows. 6.6.12 Client-only Framework subset The "Client-only Framework subset" option displayed on the "Application" page of the Project Designer is not supported. 6.6.13 Publishing The "File Associations" option displayed in the options of the "Publish" page of the Project Designer is not supported. 6.6.14 Reference settings of the project When a project inside the solution is added to the project references, it is removed from the references by taking the following steps: - Select Unload Project from the Project menu. - Change the Target Framework option to be displayed on the Application page of the Project Designer. Add the reference to the project references again after the project to be referenced becomes valid. 6.6.15 Exporting Templates Export Template in the File menu is not supported. 6.7 WSDL 6.7.1 Compilation of XML Web service client source The client source file generated by the WSDL command (included in Windows SDK) must be compiled with the NOALPHAL directive. - 12 - 6.7.2 Generation of XML Web service client source The WSDL command will fail when generating the source for an XML Web service if the service requires a feature that NetCOBOL for .NET does not yet support. If this occurs, use WSDL to generate a C# program, compile it to a DLL or module using the C# compiler (csc.exe), and use the generated program with your COBOL application. 6.8 svcutil 6.8.1 Compilation of WCF service client source The client source file generated by the svcutil command (included in Windows SDK) must be compiled with the NOALPHAL directive. 6.8.2 Generation of XML Web service client source The svcutil command will fail when generating the source for a WCF service if the service requires a feature that NetCOBOL for .NET does not yet support. If this occurs, use svcutil to generate a C# program, compile it to a DLL or module using the C# compiler (csc.exe), and use the generated program with your COBOL application. 6.9 Debugger 6.9.1 Proxy Objects The debugger cannot evaluate members of proxy objects. 6.9.2 Displaying Data Items in the Debugger - When an alphabetic or alphanumeric item is displayed in the debugger, the content of the data is converted into a Unicode (UCS2) string. If it cannot be converted into a Unicode string, it is displayed as a hexadecimal string. However, even if it can be converted into a Unicode string, it may not be displayed properly due to differences in the system locale. - The debugger interprets character data according to the setting of the RCS compiler option. If an item contains characters that are not encoded in the character set indicated by the RCS option, it will not display properly. 6.9.3 Field or Property Names Differing Only in Case When a field or property name differs only in the case (upper or lower) of certain characters, evaluating the value of that item may not produce the correct result. For example, if you have "ABC" and "abc" within the same scope and evaluate "ABC", then "abc" may be evaluated instead. 6.9.4 Breakpoints When the debugger starts, the position and range of breakpoints are set to match the compiled code. Occasionally, the position of the breakpoint markers may change when you start debugging, depending on the type and context of the statements. 6.9.5 Copy Books If the same Copy Book is copied into the PROCEDURE division multiple times, only the breakpoints set in the first copy are effective. Execution will not stop at breakpoints set in later copies. 6.10 Incompatibilities 6.10.1 Upgrading V1.x project This version of NetCOBOL for .NET does not support upgrading project files of V1.x (.cobp files). You must save a .cobp file as a .cobproj file using NetCOBOL for .NET V2.x first; then upgrade it using this version of NetCOBOL for .NET. - 13 - 6.10.2 Error opening Windows Forms created in version V2.1 or earlier The Windows Forms designer event handler name checking has been changed in Visual Studio 2005 or later. With V3.0 or later, the external names of event handlers can be no more than 30 characters. With V3.0 or later, an error occurs when you open a Windows Forms item created in NetCOBOL for .NET V2.1 or earlier that contains an event handler with an external name of greater than 30 characters. If an error occurs, change the external name as described below. Note: The external name used in the example below that would cause an error is "longLongLongLongLongControlName_Click". 1. Select a shorter name (30 or fewer characters) which does not conflict with other external names: "shortName_Click" 2. Shorten the external name of the event handler: "shortName_Click" 3. Change the references to the method name. For example, change "longLongLongLongLongControlName_Click" in the InitializeComponent method to "shortName_Click". 4. Change the name in the comment prior to the InitializeComponent method: *<prop name="MethodName"> *<string value="longLongLongLongLongControlName_Click" /> *</prop> 5. Change the references to the method name: change "longLongLongLongLongControlName_Click" in other parts of the source to "shortName_Click". 6.10.3 Correction of problem with nonnumeric literals in embedded SQL statements In versions V2.1 and earlier, when all of the conditions listed below were met, an apostrophe (') was erroneously added to the end of the specified character string. a. the database function of NetCOBOL (ODBC or ADO.NET) is used, and b. an embedded SQL statement is described over two or more lines, and c. a nonnumeric literal is described in the embedded SQL statement, and d. there is a newline directly after the nonnumeric literal, and e. the newline is followed by SQL containing a specific number of bytes (37 or 38, depending on token type). This problem has been corrected in V3.0, and is no longer an issue. 6.10.4 Private methods are non-virtual The attributes of private methods are as shown below: - V2.1L10 or earlier: virtual - V3.0L10: non-virtual With V2.1L10 or earlier, when private methods had the same name in the derived class and the base class, you could not call the method in the base class from within the derived class. With the non-virtual attribute in V3.0L10, you can call the method in the base class from within the derived class when private methods have the same name in both classes. 6.10.5 Code editor cursor position When two or more lines are selected in the COBOL code editor and the cursor is positioned at the beginning of the line (left side of the A area), the target (highlighted) area for comment selection, uncomment selection, increase line indent, and decrease line indent is as follows: - V2.1L10 or earlier: The target (highlighted) area contains the cursor line. - V3.0L10 or later: The target (highlighted) area does not contain the cursor line. - 14 - 6.10.6 Web project A specification was changed in Visual Studio 2005 or later so that now the Web project function cannot be individually offered by each language. Instead, it is controlled by Microsoft Visual Web Developer. The following are changes in the COBOL language support with Microsoft Visual Web Developer from the Web projects of previous editions of NetCOBOL for .NET. - The language name by which NetCOBOL for .NET described in the directive of ASP.NET was shown was changed from "cobol" to "Fujitsu.COBOL". However, the language name of "cobol" is related to NetCOBOL for .NET in the default setting. - A code declaration block (<script runat="server">) or display block (<% %>) cannot be used on the ASP.NET pages related to NetCOBOL for .NET. - The composition cannot be changed with Microsoft Visual Web Developer. Composition "Debug.NET" is always used. - The Language attribute on the ASP.NET page and the language of the related code file must match in Microsoft Visual Web Developer. - A design operation (Drag & Drop, etc.) cannot be performed in the global application class (.asax). - .aspx and .ascx files need to be in the form of the code separation model. Files of the old model type must be converted. Refer to the Visual Studio documentation for a detailed specification of Microsoft Visual Web Developer. 6.10.7 Specifying the assembly name for entry information A partial name of the strict assembly name is not allowed for the assembly name in the .NET Framework V2.0. - V2.1L10 or earlier A partial name of the strict assembly name can be specified for the assembly name. - V3.0L10 or later Only the strict assembly name can be specified for the assembly name. * A strict assembly name is an assembly name completely specified that contains the name, the culture of the assembly, the public key token, and the version number. 6.10.8 The shift of the build system to MSBuild The following are changes to the MSBuild system of building projects: - Resolving referenced assemblies Resolving relative paths - V2.1L10 or earlier When building, relative paths for assembly references were resolved from the specified folder of an assembly file. - V3.0L10 or later It is not possible to refer to the assembly file at a relative position from the folder that was specified by the reference path. Set the path so that there is a referenced assembly in Reference path. - V2.1L10 or earlier The NetCOBOL for .NET Runtime folder is used before the .NET Framework folder. - V3.0L10 or later The NetCOBOL for .NET Runtime folder is retrieved as registered in Visual Studio as an assembly folder. - The running folder of "Build Events" and "Custom Build Step" was changed. - V2.1L10 or earlier Folder with the project file - V3.0L10 or later Folder specified for the output path - 15 - Use a macro such as "$(ProjectDir)" when you specify the relative path from the folder in "Build Events" or "Custom Build Step" with the project file. - The value of the "$(FrameworkDir)" macro in a "Build Events" and "Custom Build Step" have changed. - V2.1L10 or earlier There is no version number. Example: C:\Windows\Microsoft.NET\Framework - V3.0L10 or later With version number Example: C:\Windows\Microsoft.NET\Framework\v2.0.50727 6.10.9 Calling a method of an array object The System.MissingMethodException exception may occur when calling a method on an array object due to a change in .NET Framework V2.0. If this occurs, rebuild the source with NetCOBOL for .NET V3.0 or later. 6.10.10 Object signatures of multi-dimensional arrays The signature of a multi-dimensional array object has been changed due to enforcement of rules in C# as follows: - V2.1L10 or earlier class[,] - V3.0L10 or later class[0...,0...] For operation on .NET 2.0, recompile the source with the V3.0L10 compiler. 6.10.11 Custom marshaller support Some program prototype definitions must be recompiled, due to a change in the internal specification of .NET Framework on custom marshaller support between V1.1 and V2.0. Sources must be recompiled if: - * the source contains a program prototype definition, and - * the program prototype definition has a COBOL-specific type parameter Otherwise, changes to the parameter in the source code will not be reflected in the managed environment. 6.10.12 RCS compiler directive The default value of the RCS compiler directive has been changed. - V2.1L10 or earlier RCS(UTF8-UCS2) - V3.0L10 or later RCS(ACP-UCS2) After the message of JMN0031I-W is output, RCS(UTF8-UCS2) is assumed. 6.10.13 /WC compiler options The specification when two or more /WC compiler options were specified was changed as follows: - 16 - - V2.1L10 or earlier Only the last /wc compiler directive specified is effective. - V3.0L10 or later The /wc options are concatenated in the order specified. If an option appears more than once, the last value specified is used. Example: cobolc /target:library /wc:SOURCE,COPY,INITVALUE(FF) /print /wc:MESSAGE,INITVALUE(00) TEST.cob An effective compiler directive is as follows: - V2.1L10 or earlier MESSAGE,INITVALUE(00) - V3.0L10 or later SOURCE,COPY,MESSAGE,INITVALUE(00) 6.10.14 BINARY-CHAR UNSIGNED Correspondence In a program definition (not a method definition), the supported correspondence between a USAGE BINARY-CHAR UNSIGNED item defined in the LINKAGE SECTION and .NET data types has been changed as follows: - V1.1L10 or earlier Unsigned int8 of .NET data type - V2.0L10 or later COBOL data type Due to this change, a CALL statement that is specified as identifier-1 cannot be used to call a program compiled with V1.1 or earlier that has a USAGE BINARY-CHAR UNSIGNED item defined in the LINKAGE SECTION. When the DLOAD compiler option is used that is an additional function of 3.1, literal-1 also cannot be used in the same situation as described above. Recompile the called program with V2.0 or later. If the DLOAD compiler option is not used, change the specification of the CALL statement from identifier-1 to literal-1. 6.10.15 Referencing Integer Data Types The recommended COBOL data types for referencing some of the integer data types from other languages, such as C#, has been changed: - V1.1L10 or earlier - int16 -> USAGE S9(4) COMP-5 - int32 -> USAGE S9(9) COMP-5 - int64 -> USAGE S9(18) COMP-5 - V2.0L10 or later - nt16 -> USAGE BINARY-SHORT - int32 -> USAGE BINARY-LONG - int64 -> USAGE BINARY-DOUBLE 6.10.16 Processing of Conditional Variables - In V2.0L10 and earlier The compiler regarded conditional variables to be a COBOL data type. - 17 - - In V2.1L10 or later Conditional variables that apply to a .NET data type are considered to be the .NET data type. 6.10.17 The install folder of the Runtime System The NetCOBOL Runtime System for .NET is now always installed in the Windows 'Common Files' folder. This includes the runtime system that is installed with the development environment or server package. Due to this change, tools that are installed with the NetCOBOL Runtime System for .NET are now outside of the PATH environment variable available from the command prompt. 6.10.18 Predefined object identifier SUPER The compiler action has been changed when the predefined object identifier SUPER is used to access to the abstract member. - V3.0L10 or earlier System.BadImageFormatException occurs at execution. - V3.1L10 or later Compiler error is issued. 6.10.19 Code of super-class constructor invocation in constructor method A part of the judging standard for verifiable type-safe code has changed from .NET Framework 1.1 to .NET Framework 2.0. Due to this change, when code of a super-class constructor invocation exists in a constructor method, NetCOBOL for .NET V3.0 and later cannot generate the assembly as verifiable type-safe code, regardless of the specification of the /verifiable compiler option. 6.10.20 The exception handling generated from the CALL identifier The exception handling generated from the CALL identifier by the version of "NetCOBOL for .NET" has changed. - V2.0L10 or earlier The exception generated calling ahead is set to InnerException of System.Reflection.TargetInvocationException. - V2.1L10, V3.0L10 For the exception generated calling ahead, throw is done at the call position of the CALL identifier. - V3.1L10 or later The exception generated calling ahead is set to InnerException of System.Reflection.TargetInvocationException. However, throw is done at the call position of the CALL identifier for the STOP RUN Exception. Refer to "Structured Exception Handling (TRY statement)" of the "NetCOBOL user's guide for .NET" for details. 6.10.21 Compiler error message JMN2320I-S In V3.1L10 and earlier, the compiler issued the JMN2320I-S message under the following conditions: 1. An item with a REDEFINES clause is subordinate to an item with a CHARACTER TYPE clause, and 2. The above-mentioned item with a REDEFINES clause or the item subordinate to it is a national data item or a national edited data item, and 3. The item redefined by the item described in a) does not correspond to each of the following conditions: - A national data item or a national edited data item for which a format-1 or format-2 CHARACTER TYPE clause is specified - An data item of usage display for which a format-3 CHARACTER TYPE clause is effective and 4. A CHARACTER TYPE clause is not specified for the national data or national edited data item described in b). - 18 - 6.10.22 Retrieval result of the SEARCH statement (SEARCH ALL) When two or more conditions were described in the WHEN clause specification of the SEARCH statement, or the subscript specified for the key item of the WHEN clause specification was multi-dimensional, the element that satisfied either of the following combination conditions was not searched correctly. The unsigned packed decimal data item (relational item) is specified at the right of the condition, and any of the key items is specified at the left of the condition. - unsigned zoned decimal data item - signed zoned decimal data item - unsigned packed decimal data item - signed packed decimal data item The search operates correctly in version V3.1 and later. 6.10.23 Retrieval result of the SEARCH statement (SEARCH ALL with RCS compile option) If a program was compiled specifying the RCS(ACP-UCS2) option or RCS(UTF8-UCS2) option to execute the data code set with Unicode, and when two or more conditions were described in the WHEN clause specification of the SEARCH statement or the subscript specified for the key item of the WHEN clause specification was multi-dimensional, the element was not searched correctly for the combination of the following items. The national data item or national edited data item is specified at the condition. The group item is specified for the other condition. The search operates correctly in version V3.1 and later. 6.10.24 Checking for property access attributes The method for checking the access attributes of properties has been changed as follows: - V3.1L10 or earlier Assuming that the GET property method and the SET property method have the same access attributes, the compiler checks for the access attributes. - V4.0.0 or later The property method is selected depending on the context (whether it is the sending side or the receiving side), and the compiler checks for access attributes based on the selected property method. 6.10.25 The first or last character of a national user-defined word Under the following conditions, the compiler does not output compilation messages in V3.1 and earlier. The compiler does output compilation messages (JMN1010I-S) in V4.0 and later. 1. The input source is Unicode (UTF-8), and 2. Either the first or last character of a national language user-defined word is a fullwidth hyphen-minus, and 3. The code of the fullwidth hyphen-minus is 0xEFBC8D. 6.10.26 Retrieval result of the SEARCH statement (SEARCH ALL with the key item of the WHEN phrase) Under the following conditions, the SEARCH ALL statement was not retrieved correctly. 1. Multiple conditions are described for the SEARCH statement WHEN phrase, or the subscript specified for the key item of the WHEN phrase is multi-dimensional, and - 19 - 2. One of the following USAGE items is described at the left of the conditions (key item): - COMP-5 (including ones that were created using compiler option ASCOMP5) - BINARY-SHORT - BINARY-LONG - BINARY-DOUBLE and 3. A floating-point item or floating-point literal is described at the right of the conditions (item to compare). The search operates correctly in V4.0 and later. 6.10.27 Compilation that specifies compiler options BINARY and OPTIMIZE Under the following conditions, the execution results were incorrect. 1. The BINARY(BYTE) or BINARY(WORD,MLBOFF) compiler option is specified, and 2. The OPTIMIZE compiler option is specified, and 3. When there is a source description that applies to either a or b below. a. An arithmetic statement that satisfies all of the following conditions: - An unsigned binary item (USAGE IS COMP-5) is specified for the receiving side element (*1). - The area length of the unsigned binary item of the receiving side element (*1) is 2 bytes. - The receiving side element (*1) is used in the arithmetic expression of the arithmetic statement. - The number of digits of the decimal part of the receiving side element (*1) is smaller than the number of digits of the decimal part of the precision of the intermediate results of the arithmetic statement. - When the arithmetic statement is a COMPUTE statement, [NOT] ON SIZE ERROR clause is not specified. b. The MOVE statement that satisfies all of the following conditions (including a MOVE statement generated implicitly): - An unsigned binary item (USAGE IS COMP-5) is specified for the receiving side element. - The binary area length of the receiving side element is 2 bytes. - The receiving side element is used in the subscript of the sending side element. - The number of digits of the decimal part of the receiving side element is smaller than the number of digits of the decimal part of the sending side element. - The CHECK(BIND) compiler option is not specified. *1: Including the REMAINDER phrase of the DIVIDE statement. The execution results are correct in V4.0 and later. 6.10.28 Compilation that specifies compiler options BINARY and TRUNC Under the following conditions, the execution results were incorrect. 1. The BINARY(BYTE) or BINARY(WORD,MLBOFF) compiler option is specified, and 2. The TRUNC compiler option is specified, and 3. There is a MOVE statement (including a MOVE statement generated implicitly) with an unsigned binary item (*1) sending side element, and a receiving side element that is either a binary item or packed-decimal (with or without a sign), and 4. The number of digits of the integer part of the sending side is larger than the number of digits of the integer part of the receiving side in the MOVE statement in 3) above, and 5. The area length of the sending side element's unsigned binary item is 2 or 4 bytes, and - 20 - 6. The high order end bit of the sending side element's unsigned binary item holds the value of ON. The execution results are correct in V4.0 and later. 6.10.29 Compilation that uses compiler option BINARY and intrinsic functions Under the following conditions, the execution results were incorrect. 1. The BINARY(BYTE) or BINARY(WORD,MLBOFF) compiler option is specified, along with 2. The following intrinsic functions: - FUNCTION MAX - FUNCTION MIN - FUNCTION MEAN - FUNCTION MEDIAN - FUNCTION MIDRANGE - FUNCTION VARIANCE - FUNCTION RANGE - FUNCTION SUM and 3. There is a 2 or 4-byte unsigned binary item in the line of the argument specified for the function in 2) above, and 4. There is not a fixed-point numeric data item of 10 or more digits in the line of the argument specified for the function in 2) above. The execution results are correct in V4.0 and later. 6.10.30 Binary item move when compiler option BINARY is specified Under the following conditions, the compiler output incorrectly compiled messages, or the execution results were incorrect. 1. The BINARY(BYTE) or BINARY(WORD,MLBOFF) compiler option is specified, and 2. There is a MOVE statement (including a MOVE statement generated implicitly) by which the numeric literal is transcribed to the binary item, and 3. The numeric value of the numeric literal in 2) above is 5 digits, and 4. In the transcript of 2) above, the number of digits of the decimal part of the numeric literal is smaller than the number of digits of the decimal part of the receiving side binary item. The execution results are correct in V4.0 and later. 6.10.31 Specified error of Concatenating Files When erroneous characters are specified following the character string "CONCAT(file name)" indicating the function to concatenate files, an execution-time error was not output. Execution-time errors are output correctly in V4.0 and later. 6.10.32 The I-O status value '04' of variable length record sequential files Under the following conditions, the I-O status value of files did not become "04." 1. Variable length record sequential files are used, and 2. The FILE STATUS clause is specified for the definition of the files of 1) above, and 3. The COBOL file system (*1) is used for the files of 1) above, and - 21 - 4. The READ statement is executed for the files of 1) above, and 5. When the record length read in 4) above exceeds the maximum record length defined by the program. *1: Excluding the case when high speed file processing (BSAM) is specified. The I-O status value of the files becomes "04" in V4.0 and later. 6.10.33 COBOL File Utility Under the following conditions, the COBOL file utility created indexed files with erroneous record key attributes (*1). 1. Either of the following commands of the COBOL file utility is used: - file load command (cobfload) - file load function (COB_FILE_LOAD) and 2. Indexed files are specified to be created, and 3. Multiple record keys are specified for the indexed files to be created, and 4. Some of the record keys of 3) above are specified to allow duplicates, and 5. When a record key that does not allow duplicates is specified following the record keys of 4) above. *1: Although it is specified that duplicates are not allowed, indexed files with record key information that allows duplicates are created. As a result: - Even when duplicates are specified as not allowed, errors are not detected for records with duplicate keys in the input file, and the operation is terminated normally. - When the OPEN statement is executed, an error message is generated indicating that the duplicate key specification is incorrect. This problem has been corrected in V4.0 and later. 6.10.34 Time difference information that CURRENT-DATE returns When the Greenwich Mean Time (GMT) month is different from the month in local time, a time difference information error is returned by the CURRENT-DATE function. The execution results are correct in V4.0 and later. 6.10.35 WRITE statement with AFTER/BEFORE ADVANCING phrase In V4.0 and earlier, if a WRITE statement with an AFTER/BEFORE ADVANCING 0 LINE phrase was executed for a line sequential file linked via an external file handler, the WRITE statement was executed as a WRITE AFTER/BEFORE ADVANCING PAGE. This has been corrected in V4.1 and later. 6.10.36 Location of SQLCODE/SQLMSG/SQLERRD definition SQLCODE, SQLMSG, and SQLERRD can now be defined outside of the SQL declaration section. Under the conditions listed below, SQL statement runtime information was not stored prior to V4.1. In V4.1 and later, runtime information is stored in SQLCODE, SQLERRD, and SQLMSG. 1. SQLSTATE is described inside the SQL declaration section, and 2. SQLCODE, SQLERRD, or SQLMSG are described outside the SQL declaration section, and 3. SQL statements are executed, and 4. SQLCODE, SQLERRD, or SQLMSG are referred to in the PROCEDURE DIVISION, and 5. Conditions 1 through 4 are occur in the same compilation unit. - 22 - In V4.1 and later, SQLCODE, SQLERRD, and SQLMSG are reserved names used to fetch SQL statement runtime information. If you have variables by those names that are used for any other purpose, the results are unpredictable. In this case, change the names of those variables. 6.10.37 Debugger function/display - Step Over For an external PERFORM statement that calls a section or paragraph, and for the statement prior to the section or paragraph label: - V4.0.0 and prior Step Over stopped with the called procedure. - V4.1 and later Step Over does not stop with the called procedure in the following cases: - When Step Over enters a section and paragraph called with a PERFORM statement. and - When the section and paragraph are output as a method definition. In these cases, please use the Step Into command. - Step Out - V4.0.0 and prior Step Out stopped in the statement following the CALL statement that calls the program. - V4.1 and later Step Out does not stop with the called procedure in the following cases: - When Step Out stops in a section and paragraph that can be called by a PERFORM statement. and - When the section and paragraph are output as a method definition. - Call Stack Call stack display changed when it stops in section or paragraph has changed. - V4.0.0 and prior When Call Stack stopped in a section or paragraph, the program name was displayed. - V4.1 and later When Call Stack stops in a section or paragraph, the section or paragraph name is displayed in the following cases: - When Call Stack stops in a section or paragraph that can be called by a PERFORM statement. and - When the section and paragraph are output as a method definition. 6.10.38 Change in Call Stack exception information display In the case below, the display of Call Stack of exception information got changed. - V4.0.0 and prior When an exception occurred in a section or paragraph, the program name was displayed. - V4.1 and later When an exception occurs in a section or paragraph, the section or paragraph name is displayed in the following cases: - When stopped in a section or paragraph that can be called by a PERFORM statement. - 23 - and - When the section and paragraph are output as a method definition. 6.10.39 Itanium-based system support Starting with NetCOBOL for .NET V4.1, Itanium-based systems are no longer supported. 6.11 Other Notes 6.11.1 License acquisition When this product is used under the control of any remote control software, such as Windows Terminal Services or Citrix MetaFrame, each user that uses the product must have purchased a valid license. 6.11.2 Using a related product in the same environment as Visual Studio 2010 When using a PowerCOBOL Series product or a NetCOBOL for Windows Series product (a "related product") in the same environment as Visual Studio 2010 or Windows SDK, a link error can occur while developing an application using the related product. When the path of the related product is set for system environment variables INCLUDE and LIB, copy the path of the related product to the head of the user environment variables INCLUDE and LIB. 6.11.3 JMN3496I-W message no longer issued When setting a COMP-5 item to an OBJECT REFERENCE of an INT type, the following message is no longer issued, since the digit overflow will no longer occur: JMN3496I-W When 'sender' is set to 'receiver', digits may overflow. 6.11.4 JMN3448I-W message no longer issued V2.0L10 or earlier, the compiler issued the JMN3448I-W message on encountering the following conditions: - There is a RAISING phrase in an EXIT PROGRAM or EXIT METHOD statement, and - The class of the object reference specified in RAISING phrase is not specified for the RAISING phrase of PROCEDURE DIVISION header. The message shown below is no longer issued because the compiler can process the code, and any exceptions propagate in the .NET system. JMN3448I-W @1@ in the RAISING phrase of the @2@ statement must be an object reference identifier. It must refer to a class name that is specified in the RAISING phrase of the PROCEDURE DIVISION header. @1@ can be either: EXIT PROGRAM, or EXIT METHOD @2@ is a data name 6.11.5 Using ODBC data administrator on 64-bit computer There are two separate ODBC setup utilities on a 64-bit computer: one for 32-bit data sources and one for 64-bit data sources. In order to create a 32-bit ODBC data source, the 32-bit version of the ODBC setup utility must be run. To do this, open a 32-bit command prompt and run odbcad32.exe. To create a 64-bit ODBC data source, run odbcad32.exe from a 64-bit command prompt window. 32-bit programs must use the 32-bit version of the Environment Setup utility, which can only read 32-bit ODBC data sources. For 64-bit programs, use the 64-bit version of the Environment Setup utility to create the NetCOBOL configuration, since it reads only 64-bit ODBC data sources. - 24 - 6.11.6 Replacing an Application You cannot replace an executable file or a DLL while they are operating or being loaded. Replace it after halting the COBOL application. 6.11.7 Updating Visual Studio 2010 or installing another edition of Visual Studio 2010 When a Service Pack is applied to Visual Studio 2010, or when another edition of Visual Studio 2010 is installed after NetCOBOL for .NET has been installed, install NetCOBOL for .NET modifications as follows: - For Windows Server 2008, Windows 7 and Windows Vista 1. Select "Programs and Features" from the Control Panel, and then select "NetCOBOL for .NET" from the list. 2. Click on "Uninstall/Change" displayed at the top of the list. 3. On the displayed screen, select "Repair" and then click on the "Next" button. - For Windows Server 2003 and Windows XP 1. Select "Add or Remove Programs" from the Control Panel, and then select "NetCOBOL for .NET" from the list. 2. Click on the "Change/Remove" NetCOBOL for .NET button. 3. On the displayed screen, select "Repair" and click on the "Next" button. - 25 -
Copyright © 2024 DOKUMEN.SITE Inc.