Sie sind auf Seite 1von 31

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 -