CHY_CUG 发表于 2012-12-25 10:53

INFORMIX直接执行一个SQL语句

现在的需求是做表之间的数据导出。表名和字段名配置在参数表中。
我的做法是将这些参数从参数表中读出,拼成一个INSERT语句,然后
直接执行。

代码片段如下:
memset(strInsStat, 0, sizeof(strInsStat));
        sprintf(strInsStat, "insert into CHY_TEST_1(");
        strncat(strInsStat, strAllColumnName, strlen(strAllColumnName) - 1);
        strcat(strInsStat, ") select ");
        strncat(strInsStat, strAllColumnName, strlen(strAllColumnName) - 1);
        strcat(strInsStat, " from chy_test");
        printf("strInsStat=%s\n", strInsStat);
        EXEC SQL :strInsStat;

strAllColumnName是表的字段名。

但是这样执行会报错。各位有更好的办法么?

谢谢。

liaosnet 发表于 2012-12-25 12:22

shell就可以实现的东西,非得用高级语言来实现。。哎。。。

CHY_CUG 发表于 2012-12-25 13:12

也考虑过用SHELL来实现,但是SHELL对数据库的操作不太好,特别是大数据量的,连接不太稳定。

CHY_CUG 发表于 2012-12-25 16:35

现在想把一个SQL语句放在字符串中,然后传给INFORMIX来执行。有办法么?谢谢。

CHY_CUG 发表于 2012-12-26 13:05

已解决,可以用EXEC SQL prepare和EXEC SQL EXECUTE来解决。谢谢。
页: [1]
查看完整版本: INFORMIX直接执行一个SQL语句