免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1317 | 回复: 3
打印 上一主题 下一主题

请教高人db2动态查询的问题~!急 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-10-09 19:58 |只看该作者 |倒序浏览
------------------------------------------------------------------------

程序主要部分:

    EXEC SQL BEGIN DECLARE SECTION;
   
        char    sql[1024];

    EXEC SQL END DECLARE SECTION;
   
    struct  sqlda *sqldaptr;
    int     precision =0, memsize, i, j=0;
   
    sqldaptr=(struct sqlda *)malloc(SQLDASIZE(1));
    sqldaptr->sqln=100;
    SETSQLDOUBLED(sqldaptr, SQLDOUBLED);
   
    memset(sql, 0, sizeof(sql));
   
    EXEC SQL WHENEVER SQLERROR GOTO ERR_OUTER;
           
    EXEC SQL PREPARE qq FROM :sql;
        
    EXEC SQL DESCRIBE qq into :*sqldaptr;
      
    if(sqldaptr->sqld == 0){
        
            printf("The SQL is not valid !");
    }
   
    EXEC SQL DECLARE cc CURSOR FOR qq;
        
    EXEC SQL OPEN cc;
   
    for(i=0; i<sqldaptr->sqld; i++){
        
        if(sqldaptr->sqlvar.sqltype%2 == 1)
            sqldaptr->sqlvar.sqlind=(short *)malloc(2);

        printf("sqltype[%d]:%d", i, sqldaptr->sqlvar.sqltype);
           
        switch(sqldaptr->sqlvar.sqltype){
            
            /* 这里确定数据类型只有485和453两种 */

            case 485:    //485
                precision = ((char *)&(sqldaptr->sqlvar.sqllen))[0];
                sqldaptr->sqlvar.sqldata = (char *SQL_POINTER)malloc ((precision + 2) /2);
                memsize = (precision +2) /2;
                break;
               
            default:    //453
                sqldaptr->sqlvar.sqldata = (char *SQL_POINTER)malloc(sqldaptr->sqlvar.sqllen);
                memsize = sqldaptr->sqlvar.sqllen;
                break;
        }
   
        memset(sqldaptr->sqlvar.sqldata,'\0',memsize);
        
    }

    EXEC SQL CLOSE cc;

    printf("End");

------------------------------------------------------------------------------------------------
现在的问题是:

连接数据库后,第一遍调用这段程序时返回正常的查询结果,第二遍调用时则返回异常,打印出来的sqltype,有的竟然为0,是为什么?

请教高人,感激不尽~!!!

[ 本帖最后由 jiaojiao0427 于 2009-10-10 21:25 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2009-10-10 08:38 |只看该作者
Up~!

论坛徽章:
0
3 [报告]
发表于 2009-10-10 21:22 |只看该作者
自己顶!

论坛徽章:
0
4 [报告]
发表于 2009-10-11 18:14 |只看该作者
请教高人~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP