首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ecpg错误:非循环或开关内的中断语句

ecpg错误:非循环或开关内的中断语句
EN

Stack Overflow用户
提问于 2014-03-15 06:27:11
回答 1查看 757关注 0票数 0

我写了一个ecpg代码。我试图根据元组是否已经存在于表中,将元组插入到表中。我在编译时得到了“错误:中断语句,而不是循环或开关”,请帮助我在代码中注释了编译器显示错误的行

代码语言:javascript
复制
EXEC SQL DECLARE cursor4 CURSOR FOR
select count(*)
from works_on
where pno = :project
and essn = :ssn;

EXEC SQL OPEN cursor4;
EXEC SQL WHENEVER NOT FOUND DO BREAK;

while (SQLCODE==0)
{
EXEC SQL FETCH IN cursor4 INTO :cnt; 
}

EXEC SQL CLOSE cursor4;
EXEC SQL BEGIN DECLARE SECTION;
const char *qry = "INSERT INTO WORKS_ON VALUES(?,?,?);";
EXEC SQL END DECLARE SECTION;

if (cnt == 0 )
{
EXEC SQL PREPARE mystmt from :qry;
exec sql execute mystmt using '123456789',3,5.0; // where i am getting error

}
EN

回答 1

Stack Overflow用户

发布于 2014-05-13 19:10:37

会执行WHENEVER语句,直到它在代码中找到另一个时间。你必须取消你的水桶后未找到的休息时间。

代码语言:javascript
复制
EXEC SQL DECLARE cursor4 CURSOR FOR
select count(*)
from works_on
where pno = :project
and essn = :ssn;

EXEC SQL OPEN cursor4;
EXEC SQL WHENEVER NOT FOUND DO BREAK;

while (SQLCODE==0)
{
EXEC SQL FETCH IN cursor4 INTO :cnt; 
}
EXEC SQL WHENEVER NOT FOUND CONTINUE;   //Add this line to your code.

EXEC SQL CLOSE cursor4;
EXEC SQL BEGIN DECLARE SECTION;
const char *qry = "INSERT INTO WORKS_ON VALUES(?,?,?);";
EXEC SQL END DECLARE SECTION;

if (cnt == 0 )
{
EXEC SQL PREPARE mystmt from :qry;
exec sql execute mystmt using '123456789',3,5.0; 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22420394

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档