Component Integration Services handles large column values when proxy tables are involved in data manipulation language (DML) operations. Component Integration Services handles DML using one of several strategies:
Tabular data stream (TDS)™ language commands – if the entire SQL statement can be forwarded to a remote server, then Component Integration Services does so using TDS Language commands generated by CT-Library ct_command (CS_LANG_CMD).
The text of the language buffer may contain data for long char or binary values that exceeds 255 bytes, and remote servers must handle parsing of these command buffers.
TDS dynamic commands – if Component Integration Services cannot forward the entire SQL statement to a remote server (for example, Component Integration Services is forced to provide functional compensation for the statement), then an insert, update, or delete may be handled by using TDS dynamic commands, with parameters as needed, using the CT-Library function ct_dynamic (CS_PREPARE_CMD, CS_EXECUTE_CMD, CS_DEALLOC_CMD).
The parameters for the dynamic command may be CS_LONGCHAR_TYPE or CS_LONGBINARY_TYPE.
TDS cursor commands – CT-Library cursor operations can be used to handle proxy table operations for select, update, and delete if functional compensation has to be performed. For example, if you are updating a proxy table and there are multiple tables in the from clause, Component Integration Services may have to fetch rows from multiple data sources, and for each qualifying row, apply the update to the target table. In this case, Component Integration Services uses ct_cursor ({CS_DECLARE_CMD, CS_OPEN_CMD, CS_CURSOR_UPDATE_CMD, CS_CLOSE_CMD, CS_DEALLOC_CMD}).
After a cursor is prepared, parameters are specified. These parameters may include those of type CS_LONGCHAR or CS_LONGBINARY.
Bulk insert commands – when performing a select/into operation, if the target server supports the bulk interface (only true of remote Adaptive Servers and DirectConnect for Oracle), then the remote server must be prepared to handle char and binary values greater than 255 (via CS_LONGCHAR, CS_LONGBINARY values).
Columns from remote servers may be returned to Component Integration Services as type CS_LONGCHAR_TYPE or CS_LONGBINARY_TYPE.