Syntax

There are three attributes you can use to specify or reduce the amount of schema information marshaled for individual temp-table parameters.

The first attribute lets you specify the amount of schema information to pass when the temp-table is marshaled. This is the syntax for the SCHEMA-MARSHAL attribute:

table-handle:SCHEMA-MARSHAL = FULL | MIN | NONE

The following table lists the SCHEMA-MARSHAL attribute values.

Attribute value Description
FULL Includes all schema information for a temp-table parameter
MIN Minimizes schema information for a temp-table parameter
NONE Excludes schema information for a temp-table parameter

If set to the Unknown value (?), the default value is FULL.

The second attribute eliminates all schema description from the parameter, as shown in the following syntax:

table-handle:NO-SCHEMA-MARSHAL = TRUE

If you set this logical attribute to true on a temp-table, then no schema information is passed when the temp-table is marshaled. This includes index descriptions and field information. The receiving side must have a static definition to receive the temp-table into.

Note: The NO-SCHEMA-MARSHAL attribute is supported only for backward compatibility. Use the SCHEMA-MARSHAL attribute instead. The NO-SCHEMA-MARSHAL attribute corresponds to the SCHEMA-MARSHAL attribute with a value of "NONE".

The third attribute reduces the schema information passed to the minimum needed to validate or establish the temp-table dynamically in the receiving procedure, as shown in the following syntax:

table-handle:MIN-SCHEMA-MARSHAL = TRUE

If you set this logical attribute to true on a temp-table, then only minimum schema information is passed along with the data. This includes the field name and data type and extent.

Note: The MIN-SCHEMA-MARSHAL attribute is supported only for backward compatibility. Use the SCHEMA-MARSHAL attribute instead. The MIN-SCHEMA-MARSHAL attribute corresponds to the SCHEMA-MARSHAL attribute with a value of "MIN".

The temp-table ERROR-STRING (a new attribute used by ProDataSets, described in Set and use ERROR, ERROR-STRING, and REJECTED) is also passed. Values for other field attributes are passed as the Unknown value (?), so that the protocol for the call remains the same but the amount of data is greatly reduced. No index information is passed. You can use this option even when the receiving procedure has a dynamic parameter (TABLE-HANDLE for a single temp-table or DATASET-HANDLE for a ProDataSet), because the field names, along with the data type and extent, can be used to construct a minimally complete dynamic temp-table on the receiving side without setting all the other field attributes.

If you want to eliminate or minimize temp-table schema information passed as part of a ProDataSet parameter, you must set the SCHEMA-MARSHAL attribute on each temp-table in the ProDataSet. It is possible you might set it differently for different tables, depending on whether you have static definitions of all the temp-tables on the other side of the call.

Note: If you specify both the SCHEMA-MARSHAL attribute and the NO-SCHEMA-MARSHAL or MIN-SCHEMA-MARSHAL attribute for an individual temp-table, the AVM uses the attribute you most recently specified. The NO-SCHEMA-MARSHAL and MIN-SCHEMA-MARSHAL attributes are supported only for backward compatibility. Use the SCHEMA-MARSHAL attribute instead.

Setting any of these temp-table attributes overrides the setting of the Temp-table Schema Marshal (-ttmarshal) startup parameter for an individual temp-table parameter. For more information about these temp-table attributes, see ABL Reference. For more information about the -ttmarshal startup parameter, see Startup Command and Parameter Reference.