FLUSH statement

Use the FLUSH statement to force rows that a PUT statement buffered to be written to the database.

Syntax

FLUSH { cursor_id | cursor_id_var }
Element Description Restrictions Syntax
cursor_id Name of a cursor Must have been declared Identifier
cursor_id_var Host variable that holds the value of cursor_id Must be a character data type Language specific

Usage

Use this statement, which is an extension to the ANSI/ISO standard for SQL, with Informix® ESQL/C.

The PUT statement adds a row to a buffer, whose content is written to the database when the buffer is full. Use the FLUSH statement to force the insertion when the buffer is not full.

If the program terminates without closing the cursor, the buffer is left unflushed. Rows placed into the buffer since the last flush are lost. Do not expect the end of the program to close the cursor and flush the buffer automatically. The following example shows a FLUSH statement that operates on a cursor called icurs:
FLUSH icurs 

Example

The following example assumes that a function named next_cust returns either information about a new customer or null data to signal the end of input:
EXEC SQL BEGIN WORK; 
EXEC SQL OPEN new_custs; 

while(SQLCODE == 0) 
{ 
	next_cust(); 
	if(the_company == NULL) 
		break; 

	EXEC SQL PUT new_custs; 
} 

if(SQLCODE == 0) 	/* if no problem with PUT */ 
{ 
	EXEC SQL FLUSH new_custs; 
	/* write any rows left */ 
	
	if(SQLCODE == 0) 	/* if no problem with FLUSH */ 
		EXEC SQL COMMIT WORK; 	/* commit changes */ 
} 
else 
	EXEC SQL ROLLBACK WORK; /* else undo changes */
The code in this example calls next_cust repeatedly. When it returns non-null data, the PUT statement sends the returned data to the row buffer. When the buffer fills, the rows it contains are automatically sent to the database server. The loop normally ends when next_cust has no more data to return.