| INSERT 语句 / 插入游标 | |
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) /* 如果 PUT 没有问题 */
{
EXEC SQL FLUSH new_custs; /* 写留下的任何行 */
if(SQLCODE == 0) /* 如果 FLUSH 没有问题 */
EXEC SQL COMMIT WORK; /* 提交更改 */
}
else
EXEC SQL ROLLBACK WORK; /* 否则,取消更改 */
此示例中的代码反复地调用 next_cust,当它返回非空数据时,PUT 语句将返回的数据发送到该行缓冲区。当缓冲区填满时,自动地将它包含的行发送到数据库服务器。当 next_cust 没有更多数据返回时,该循环正常结束。然后,FLUSH 语句写入缓冲区中余下的任何行,之后,事务终止。
重新检查关于 INSERT 语句的信息。请参阅 INSERT 语句。该语句本身不是游标定义的一部分,它将单个行插入到 customer 表内。实际上,可从示例代码删除整个插入游标的装置,且可将 INSERT 语句写到 PUT 语句正所在的位置。不同之处在于,插入游标导致程序运行得更快些。