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 语句正所在的位置。不同之处在于,插入游标导致程序运行得更快些。