我写了一个ecpg代码。我试图根据元组是否已经存在于表中,将元组插入到表中。我在编译时得到了“错误:中断语句,而不是循环或开关”,请帮助我在代码中注释了编译器显示错误的行
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
}发布于 2014-05-13 19:10:37
会执行WHENEVER语句,直到它在代码中找到另一个时间。你必须取消你的水桶后未找到的休息时间。
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; https://stackoverflow.com/questions/22420394
复制相似问题