EGL add 语句将记录放到文件、消息队列或数据库中;或者将一组记录放到数据库中。
以下是一个示例:
if (userRequest == "A") try add record1; onException myErrorHandler(12); end end
add 语句的行为取决于记录类型。有关 SQL 处理的详细信息,请参阅 SQL 记录。
当添加带索引记录时,记录中的键确定了该记录在文件中的逻辑位置。将记录添加至已使用的文件位置将导致硬 I/O 错误 UNIQUE 或者(如果允许重复的话)导致软 I/O 错误 DUPLICATE。
当添加 MQ 记录时,记录将放置在队列的末尾。进行这种安排的原因是 add 调用了一个或多个 MQSeries® 调用:
当添加相对记录时,键项指定文件中的记录的位置。然而,将记录添加至已使用的文件位置会导致硬 I/O 错误 UNIQUE。
当添加串行记录时,记录被放置在文件末尾。
如果生成的程序添加一个串行记录,然后对同一个文件发出 get next 语句,则在执行 get next 语句之前,程序将关闭并重新打开该文件。因此,跟随在 add 语句之后的 get next 语句读取文件中的第一条记录。当 get next 和 add 语句位于不同的程序中,并且其中一个程序调用另一个程序时,也会发生这种行为。
建议避免在多个程序中同时打开同一个文件。
INSERT INTO tableName (column01, ... columnNN) values (:recordItem01, ... :recordItemNN)
try add employees; onException sysLib.rollback(); end
相关任务
语法图