try:EXEC SQL GetPrice :szNo,:szDeopt,:szPrice output;

解决方案 »

  1.   

    EXEC SQL GetPrice :szNo,:szDeopt,:szPrice output;
    -----------------------------------------^^^^^^^^你用什么语言?
      

  2.   

    EXEC SQL GetPrice :szNo,:szDeopt,:szPrice output
    select szPrice
      

  3.   

    我是在写一个tuxedo服务
    用的是c语言
      

  4.   

    用EXEC SQL GetPrice :szNo,:szDeopt,:szPrice output时调试信息:
    SQLCODE:-179
    Cannot use OUTPUT option when passing a constant to stored procedure在一本书上提到要用游标和FETCH
    但是没说具体怎么作
      

  5.   

    main()
    {
    exec sql include sqlca
    exec sql begin declare section
      char prname[20];
      char productno[8];exec sql end declare sectionprintf("Input producno:");
    scanf("%s",&producno);exec sql select prname
             from product
             where productno=:productno
             into :prname;printf("Productname: %s\n",prname);exit();
    }
    ?????
      

  6.   

    执行一般的查询语句取值是可以的,但是要在存储过程调用后取返回参数,
    总试不出来,不知道用动态sql语句并利用sqlca来处理不知道行不行
      

  7.   

    在SQL 2000的帮助里找ESQL/C 就可以找找示例看看我也没具体做过,你发个短信问问leimin黄山GG 看看
      

  8.   

    谢谢各位指点!
    在SQL 2000帮助中确实有一些相关实例
    其中有调用存储过程获取返回数据的
    例中使用游标和FETCH,这样能够获取用SELECT ... FROM ...形式的返回值
    但是这个查询语句限制比较死,不能有把返回参数作为列值返回
    而且,更不幸的是,游标和FETCH只能对第一个结果集处理,而存储过程里
    大量使用了SELECT语句。
    另外有一个例子是直接用DB-Library的函数处理的,例子是可行的,
    但是移植到我自己的应用中不能顺利通过,因为我对ESQL/C和DB-Library
    都不熟,还请各位继续不吝赐教
      

  9.   

    采用DB-Library基本可行,只不过也麻烦了点
    而且由于不熟悉,多少感觉不踏实,不知道对错