sinat_36304417 2016-12-06 16:41 采纳率: 57.1%
浏览 2136

proc中遇到一个sqlcode=-1480的问题

#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触发器,可以计算出待插记录的其中两个属性的值。
图片说明

  • 写回答

1条回答 默认 最新

  • Tiger_Zhao 2016-12-08 01:29
    关注

    检查一下触发器,是否存在跨行计算?是否对其它表进行了连带更新?
    你用循环插入最后递交,触发器触发时许多数据处于未递交状态。

    评论

报告相同问题?

悬赏问题

  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)