Debugging 1274 and other SQL-related run-time errors

Document ID : KB000053343
Last Modified Date : 14/02/2018
Show Technical Document Details

Problem: 

Some errors related to SQL program code are caught at run-time. The 1274 is a specific example of this. This document describes how to debug these errors in general and the 1274 in particular.

Environment:  

A 1274 can occur in any CA IDMS environment where the SQL option is in use; on any operating system

Cause: 

A 1274 error, or other errors related to SQL program code, can be encountered at run-time. This occurs when the program (or dialog) executes, loads the access module (AM), and finds some sort of problem in the DML that is being executed based on the path in the AM.

Resolution/Workaround:

When a program or dialog compiles cleanly, and an access module is generated cleanly, it means that the syntax in the program has passed all of the checks that can be built into the pre-compiler and the access module generator. However, that doesn't mean that the code is unflawed. Execution may still catch problems in the code. For example, it is possible to get a 1274 on a particular module (such as HOLDTABLE) in a specified area. You can debug errors like this exactly as you would if they were in network DML.

Checking the CA IDMS Messages & Codes manual, a 12 major code indicates that the program is attempting a STORE; the minor code of 74 indicates that an attempt to load a required loadmodule (typically a database procedure or subschema) has failed.

The name of the module may give a clue as to whether this is access to an SQL table, as opposed to using SQL DML to access a network database. If this appears to be an SQL table, the 74 minor code may be confusing because you can't define a DB Procedure on a table in the same way that you would a network record. But you can specify COMPRESS in a table definition, which will cause us to try to load a DCT module to handle the compression; the DCT is considered a type of database procedure in so far as this error is concerned. Most clients that encounter the 1274 do so because they have specified "COMPRESS" on the CREATE TABLE syntax, but do not have the PRESSPACK product. Per section 9.24.3 of the r16 SQL Reference Manual, the PRESSPACK product is required when COMPRESS is specified in a table definition.

If you encounter a 1274 that appears to be related to access against an SQL table, please check the table definition to see if COMPRESS 
is specified. If it is, you will need to either install Presspack, or you will need to drop the table and re-add it without the COMPRESS specification.

If the access in question is against a network database, then check the records involved for database procedures. ensure that they are available to this routine at run-time.

For other run-time errors, follow a similar procedure in researching the meaning of the error-code, and determining the cause:

  1. Determine the meaning of the error status using the Messages & Codes manual. 
  2. Determine the data source involved, using the name in the error. Is this an SQL table, or a network record being accessed using SQL DML? 
  3. If this is network data, research and resolve as if SQL DML were not involved. 
  4. If this is DML accessing an SQL database, determine what the problem is related to the SQL data in question.

 

Additional Information:

 

The CA IDMS Messages and Codes contains descriptions of all DB and DC error codes.