FLUSH 语句

使用 FLUSH 语句来将 PUT 语句缓冲的行强制写到数据库。

语法

元素 描述 限制 语法
cursor_id 游标名称 必须已经声明 标识符
cursor_id_var 保留 cursor_id 值的主变量 必须为字符数据类型 特定于语言

用法

随同 GBase 8s ESQL/C 使用此语句,这是对 SQL 的 ANSI/ISO 标准的扩展。

PUT 语句添加行到缓冲区,在缓冲区变满时,将缓冲区的内容写到数据库。在缓冲区未满时,使用 FLUSH 语句来强制插入。

如果程序终止而未关闭该游标,则缓冲区保持为未刷新。从上一次刷新丢失起,将行放入缓冲区内。不要预期程序结束会自动地关闭游标并刷新缓冲区。下列示例展示操作名为 icurs 的游标的 FLUSH 语句:
FLUSH icurs 

示例

下列示例假设名为 next_cust 的函数返回有关新客户的信息,或返回空数据表示输入结束:
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 */
此示例中的代码重复地调用 next_cust。在返回非空数据时,PUT 语句将返回值发送到行缓冲区。在缓冲区填满时,自动地将缓冲区包含的那些行发送到数据库服务器。在 next_cust 不再有数据返回时,循环正常结束。