Limits and Ranges

The following limits exist when working with MSSQL:
Maximum number of columns per key:      16
Maximum number of columns: 1024
Maximum number of bytes in a single row when using Acu4GL for MSSQL:     8060

To achieve the same sort or retrieval sequence under MSSQL as under the file system, key fields that contain signed numeric data must be preceded by a BINARY XFD directive.

Acu4GL supports the data types shown below; when it's creating tables, the following conversion rules are used, in the sequence shown:

COBOL SQL Server
DATE XFD directive
DATETIME
BINARY XFD directive
VARBINARY(n) (if SIZE < 255)
IMAGE (if SIZE >255)
VAR_LENGTH XFD directive   
VARCHAR(n) (if SIZE < 255)
Usage FLOAT
REAL (if SIZE = 4)
Usage DOUBLE
FLOAT (if SIZE = 8)

Any other numeric usage:

PIC 9(n)V9(m)   
SMALLINT (if m = 0 and n < 5)
INT (if m = 0 and n < 10)
DECIMAL(n + m, m)(otherwise) 

Any other usage:

PIC X(n)   
CHAR(n) or NCHAR(n) (if n < 255)
(Note: NCHAR columns are dependent on the variable A_MSSQL_CREATE_UNICODE_COLUMNS set to TRUE)
TEXT (if n > 255) 
Note: If the VAR_LENGTH XFD directive is in effect, VARCHAR and NVARCHAR types are created instead.

Other limits are described in Limits and Ranges of the ACUCOBOL-GT documentation.