使用 FLUSH 语句来将 PUT 语句缓冲的行强制写到数据库
用法
随同 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 不再有数据
返回时,循环正常结束。