发新话题
打印

[c/c++] C语言中调用SQL语句时使用两个INTO时出错

C语言中调用SQL语句时使用两个INTO时出错

具体SQL语句如下:
EXEC SQL SELECT MAX(DEP_SEQ_ID) INTO :db_strMaxDepSeqId, MIN(DEP_SEQ_ID) INTO :db_strMinDepSeqId
        FROM DEP_FUND_INFO
        WHERE TRAN_DATE = :db_strDate
         AND (SEC_CODE = :db_strSecCode OR :db_strSecCode =:db_strHqId)
        AND TRAN_TIME >= :db_strSTime
        AND TRAN_TIME <= :db_strETime
        AND TRAN_CODE in ('12001','12002');
这时编译时提示:
SQL0060W  The "C" precompiler is in progress.
   91   SQL0104N  An unexpected token "MAX(DEP_SEQ_ID) INTO
                  :db_strMaxDepSeqId           ," was found following "SELECT
                  ".  Expected tokens may include:  "<space>".
                  SQLSTATE=42601
        SQL0095N  No bind file was created because of previous
                  errors.
        SQL0091W  Precompilation or binding was ended with "2"
                  errors and "0" warnings.
make: The error code from the last command is 4.

但是我将两个INTO拆分成两个SQL语句就可以了,如下:
EXEC SQL SELECT MAX(DEP_SEQ_ID) INTO :db_strMaxDepSeqId
        FROM DEP_FUND_INFO
        WHERE TRAN_DATE = :db_strDate
        AND (SEC_CODE = :db_strSecCode OR :db_strSecCode =:db_strHqId)
        AND TRAN_TIME >= :db_strSTime
        AND TRAN_TIME <= :db_strETime
        AND TRAN_CODE in ('12001','12002');
EXEC SQL SELECT MIN(DEP_SEQ_ID) INTO :db_strMinDepSeqId
        FROM DEP_FUND_INFO
        WHERE TRAN_DATE = :db_strDate
        AND (SEC_CODE = :db_strSecCode OR :db_strSecCode =:db_strHqId)
        AND TRAN_TIME >= :db_strSTime
        AND TRAN_TIME <= :db_strETime
        AND TRAN_CODE in ('12001','12002');
请问这是什么原因,是SQL语句本身就有这样的规定吗?
yyfgw

TOP

复制内容到剪贴板
代码:
语法错误
应该使用
EXEC SQL SELECT MAX(DEP_SEQ_ID),MIN(DEP_SEQ_ID)  INTO :db_strMaxDepSeqId, INTO :db_strMinDepSeqId
        FROM DEP_FUND_INFO
        WHERE TRAN_DATE = :db_strDate
         AND (SEC_CODE = :db_strSecCode OR :db_strSecCode =:db_strHqId)
        AND TRAN_TIME >= :db_strSTime
        AND TRAN_TIME <= :db_strETime
        AND TRAN_CODE in ('12001','12002');
程序讨论欢迎进入http://westsoftware.blog.163.com

TOP

C语言中调用SQL语句?这是什么样的调用啊?从来没见过这种方式的调用啊,什么数据库?
请赐教!
Once upon a man.

TOP

谢谢

非常感谢
yyfgw

TOP

mysql_query?
这些都是sql语句吧?

TOP

在数据库客户端或telnet远程登陆的时候尝试过一条语句里实现一条记录插入两个表里么?如果不行,有可能是sql语法约束问题。
代码里数据库语句执行失败最好的方法是跟踪调试把语句找出来到客户端里执行一下,客户端里有比较详细的语法错误提示
LINUX新手上路

TOP

发新话题