#include <stdio.h>
#include "sqlca.h"
EXEC SQL BEGIN DECLARE SECTION;
char con[100]="system/952320Lu@Soldier";
int id=0;
char month[12][3]={"Jan","Feb","May","Jun","Aug","Sep","Dec","Mar","Apr","Jul","Oct","Dec"};
int z=0;
EXEC SQL END DECLARE SECTION;
int main()
{
printf("We Will connect to Soldier!\n");
EXEC SQL WHENEVER SQLERROR goto error;
EXEC SQL connect :con;
printf("connected!\n");
for(id=0;id<1000;id++){
if(id<800){
z=id%7;
exec sql insert into orders values(0,:month[z],'C001','a01','P01',500,0);
}else{
z=id%5+7;
exec sql insert into orders values(0,:month[z],'C002','a02','P02',500,0);
}
}
exec sql commit;
return 0;
error:
printf("error!\n");
printf("sqlca.sqlcode=%d,sqlerrm.sqlerrmc=%s\n",sqlca.sqlcode,sqlca.sqlerrm.sqlerrmc);
return sqlca.sqlcode;
}
是在向orders表中插数据的时候才出现的错误,如何解决?
而且如果不是循环插入数据而是就插入一条数据的话可以通过。
orders表中附有一个序列和一个行级before触发器,可以计算出待插记录的其中两个属性的值。
图片说明