请问fetch不到数据的时候,sqlca.sqlcode到底是-1403还是1403啊?
看到有的代码里或者网上有写sqlca.sqlcode==1403,但是好像其他错误大都是负值啊?难道是正负都行?求解惑,谢谢!

解决方案 »

  1.   

    就是判断的时候应该是sqlca.sqlcode==-1403还是sqlca.sqlcode==1403?
      

  2.   

    谢谢楼上。其他的sqlcode呢?也是正的?比如1405,也是sqlcode==1405?不是-1405?
      

  3.   

    可是我用printf %ld 打出的sqlcode是带有-号的啊
      

  4.   

    是PRO*C程序吧!?
    预编译选项 MODE
    MODE=ORACLE 时,     sqlca.sqlcode=1403; 
    MODE=ANSI 时,       sqlca.sqlcode=100;
      

  5.   

    sqlca.sqlcode=100 一般的编程语言  均为这个
      

  6.   

    谢谢大家的回答,是ProC程序,我的意思是,假设MODE=ORACLE 时, sqlca.sqlcode==1403进行判断,那为啥我
    在用printf("SQLCODE : %ld, %s",caPointer->sqlcode,caPointer->sqlerrm.sqlerrmc);
    打出来的是带有负号的?
    比如:SQLCODE : -8103, ORA-08103: object no longer exists
    SQLCODE : -1002, ORA-01002: fetch out of sequence但是为什么判断sqlcode的时候就不需要负号呢?
      

  7.   

    转成无符号数printf一下,试下...
      

  8.   

    fetch 游标 into 设置的字段;
    exit when 游标%notfound ;
    这个比较好
      

  9.   

    进行判断时应该用正值。
    参考Oracle官方例子。
    http://download.oracle.com/docs/cd/E11882_01/appdev.112/e10825/pc_17obj.htm#i457195