当前位置: 代码迷 >> DB2 >> db2代码编译报错!该怎么处理
  详细解决方案

db2代码编译报错!该怎么处理

热度:5442   发布时间:2013-02-26 00:00:00.0
db2代码编译报错!急!
各位高手,我在编译C代码时报错,不懂错误原因,请各位指点。

db2inst1@vmhost:~/usr> make
db2 connect to sample user tsp30 using tsp30

   Database Connection Information

 Database server        = DB2/LINUX 10.1.0
 SQL authorization ID   = TSP30
 Local database alias   = SAMPLE

db2 "prep demo.sqc bindfile preprocessor 'gcc -I/home/db2inst1/sqllib/include -DDEBUG -E -o demo.i'" 

LINE    MESSAGES FOR demo.sqc
------  --------------------------------------------------------------------
        SQL0060W  The "C" precompiler is in progress.
   36   SQL4001N  The character "? in column "19" on line "36" is 
                  not valid.
        SQL0095N  No bind file was created because of previous 
                  errors.
        SQL0091W  Precompilation or binding was ended with "2" 
                  errors and "0" warnings.
make: *** [demo] Error 4
------最佳解决方案--------------------------------------------------------
没加过中文,你看看是不是上传的时候,变乱码了。或者,你直接在服务器上改一下。
------其他解决方案--------------------------------------------------------
你看看那行是不是有非法字符,windows和unix的不一样。
------其他解决方案--------------------------------------------------------
     
     29         ret = connectdb(dbname, user, passwd);
     30         if (SQLCODE)
     31         {
     32                 fprintf(stderr, "connect db %d\n", SQLCODE);
     33                 return -1;
     34         }
     35 
     36         fprintf(stderr, "测试connect db success\n");
     37 

------其他解决方案--------------------------------------------------------
第36行因为有中文,这个是我写的一个DEMO程序,想测试宏定义DEBUG
按网上提示编译时候加preprocessor选项,可以对宏进行预编译

但是代码中只要出现中文,就会报上面的错误。

如果不加preprocessor选项,编译:
db2 prep demo.sqc bindfile
db2 bindfile demo.bnd
就不会报错。
------其他解决方案--------------------------------------------------------
我已经搞定了,是数据库本身设置问题
  相关解决方案