打印

关于400上嵌入SQL的CCSID问题,哪位高手可以解决?

关于400上嵌入SQL的CCSID问题,哪位高手可以解决?

在400上写C嵌入SQL程序,因为程序是从windows上传上去的,并且里面有些中文的常量,所以最好选择了1388的字符集。
有这样一个简单的表:
create table testdb/mytest(trd_id char(2),id int)
insert into testdb/mytest values('0B',0)
然后在以下嵌入SQL程序中进行查询,结果总是报SQL0100的错误,后来查看这个表没有建成1388的,也建不成1388的字符集。不知道哪位高手能解决一下,使这个程序能查出记录。
#include <stdio.h>

EXEC SQL INCLUDE SQLCA;
int main()
{  
  EXEC SQL BEGIN DECLARE SECTION;
    long id;
    char szTrdId[3];
  EXEC SQL END DECLARE SECTION;

  memset(szTrdId,0x00,sizeof(szTrdId));
  strcpy(szTrdId, "0B");
  
  EXEC SQL SELECT ID INTO :id FROM TESTDB/MYTEST WHERE TRD_ID= :szTrdId;
  if(SQLCODE!=0)
  {   
      printf("SQLCODE IS <%d>.\n", SQLCODE);
      return -1;
  }
  else
  {
      printf("ID is <%d>\n", id);
  }
   
   return 0;
}
这只是个例子,返回总是100。因为实际应用中参数是从外面传过来的,所以只能用这种用法。
不知道谁能帮忙解决这个难题。

TOP

貌似是汉字的问题,上午我同事做SqlRpg也碰到类似错误,最后把表相关字段改成O型就搞定了

TOP


感谢一直以来您对我们的支持!
当前时区 GMT+8, 现在时间是 2008-11-22 10:49 京ICP证060528 号

Designed By 17DST