当前位置: 代码迷 >> SQL >> 保留动态SQL的执行结果
  详细解决方案

保留动态SQL的执行结果

热度:34   发布时间:2016-05-05 13:28:21.0
保存动态SQL的执行结果
sprintf(sqlstr,"select count(*) into :tmpRecord from %s where acno='%s' and trdt between %s and %s;",tabname,sAcno,sBeginDate,sEndDate);

如上述代码,若要保存tmpRecord 是不能实现的,解决办法:

??? 定义动态SQL语句:

sprintf(sqlstr,"select count(*)  from %s where acno='%s' and trdt between %s and %s;",tabname,sAcno,sBeginDate,sEndDate);
?

??? 动态定义游标,并查询记录集,若为单条数据,fetch一次即可。

EXEC SQL PREPARE viewsql from :sqlstr;EXEC SQL declare cur_count1 CURSOR FOR viewsql;EXEC SQL OPEN cur_count1;while(1){    EXEC SQL fetch cur_count1 into:tmpRecord;    if ( SQLCODE == SQLNOTFOUND )        break;}
?
  相关解决方案