Client collections
The Informix® ESQL/C application declares the collection variable name, allocates the memory for it with the ALLOCATE COLLECTION statement, and performs operations on the collection data.
To access the elements of a collection variable, specify the variable in the Collection Derived Table clause of a SELECT, INSERT, UPDATE, or DELETE statement. Informix® ESQL/C performs the select, insert, update, or delete operation. Informix® ESQL/C does not send these statements to the database server when they include a client collection variable in the collection-derived table clause.
For example, Informix®
ESQL/C performs
the following INSERT operation on the a_multiset collection
variable:
EXEC SQL BEGIN DECLARE SECTION;
client collection multiset(integer not null) a_multiset;
EXEC SQL END DECLARE SECTION;
EXEC SQL insert into table(:a_multiset) values (6);
When an SQL statement includes a collection variable, it
has the following syntax restrictions:
- You can only access elements of a client-side collection with the collection-derived table clause and a SELECT, INSERT, UPDATE, or DELETE statement.
- An INSERT statement cannot have a SELECT, an EXECUTE FUNCTION, or an EXECUTE PROCEDURE statement in the VALUES clause.
- You cannot include a WHERE clause
- You cannot include an expression
- You cannot use scroll cursors