Write an iterator function

An iterator function is a user-defined function that returns to its calling SQL statement several times, each time returning a value.

The database server gathers these returned values together in an active set. To access a value in the active set, you must obtain it from a database cursor. Therefore, an iterator function is a cursor function because it must be associated with a cursor when it is executed.
Tip: This section describes how to create an iterator function that is written in C. For general information about how to create user-defined functions, see the HCL Informix User-Defined Routines and Data Types Developer's Guide.
The database server might execute an iterator function many times. It groups these iterations into the iterator-status values and puts the iterator status for a given iteration in the MI_FPARAM structure. Within an iterator function, you examine the MI_FPARAM structure for an iterator status to determine which actions the iterator function must take.
Tip: The HCL Informix® BladeSmith development tool, which is part of the Informix DataBlade Developers Kit (DBDK), automatically generates C source code for an iterator function and the SQL statements to register the iterator function. For more information, see the HCL Informix DataBlade Developers Kit User's Guide.
To specify the different points at which the database server calls an iterator function, the iterator-status flag (of type MI_SETREQUEST) supports the constants in the following table.
Table 1. Iterator-status constants for calls to an iterator function
When is the iterator function called? What does the iterator function do? Iterator-status constant in MI_FPARAM
The first time that the iterator function is called Initializes the iterations SET_INIT
Once for each item in the active set Returns one item of the active set SET_RETONE
After the last item of the active set is returned Releases iteration resources SET_END

Copyright© 2019 HCL Technologies Limited