Setting attributes for individual temp-table parameters
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:
Syntax
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:
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:
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 Setting and using 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 OpenEdge Development: ABL Reference. For more information about the -ttmarshal startup parameter, see OpenEdge Deployment: Startup Command and Parameter Reference.