DB2数据库编译中那两个问题会困扰你?

数据库
下面的文章主要介绍的是DB2数据库编译的两个问题(C语言),如果你对其相关的实际操作有兴趣的话,你就可以对以下的文章点击观看了。

此文章主要讲述的是DB2数据库编译的两个问题(C语言),你如果对DB2数据库编译的两个问题(C语言),有兴趣的话你就可以点击以下的文章进行观看了,希望会给你带来一些帮助在此方面。

DB2编译C语言, 编译, 高手

 

我现在遇到了DB2编译的2个问题(C语言)

 

1、按64位编译

 

makefile里db2所链接的库指向64位库,并且CC参数指明-q64时编译,

 

提示"The typedef definition of wchar_t is incompatible with the option wchar_t_size"

 

经查,就是32位与64位的区别。忽略此错误,运行执行程序时,所有关于数据库的变量(sqlca.sqlcode)

 

值就是乱值,例如当错误码为-303时,实际应为-303,它的值却为538976288。

 

将makefile的库指向32,并且cc编译参数修改为-q32时,上面的问题就解决了。

 

现在按要求必须按64位进行DB2数据库编译,我该如何处理,以解决上面的矛盾?

 

2、类型不匹配

 

按数据库表结构,在*.h文件中定义对应的宏,如果结构中有字段类型为int或long时,

 

当我把变量类型时定义为int时提示如下错误:

 

  1. The token "int" found in a host variable declaration is not valid 

很明显,该错误知int不合法,换个即可。

 

将所有int型修改long型时则提示:

 

  1. The 'long' host variable "fieldnum" is not valid.Use 'sqlint32' instead。 

由于现在的机器是64位的,我将long型统一修改为sqlint32或sqlint64,DB2数据库编译均通过

 

但是在执行时,提示错误码为303的错误,即类型不匹配:

 

  1. SQL0303N A value cannot be assigned to a host variable in the  
  2. SELECT, VALUES, or FETCH statement because the data  
  3. types are not compatible. 

h文件中sqlint32型或sqlint64型的变量,在数据库中定义的类型为int型。

 

DB2数据库编译的2个问题

上述的相关内容就是对DB2数据库编译的2个问题(C语言),DB2高手的请进的描述,希望会给你带来一些帮助在此方面。

【编辑推荐】

  1. DB2终极SQL性能调节技术经典版
  2. IBM DB2数据库与注意事项_DB2编程的描述
  3. DB2数据库进行备份在AIX如何操作?
  4. 对DB2 增量备份的正确运用描述
  5. DB2 存储过程的异常处理器类型有几种?
责任编辑:佚名 来源: 腾讯科技
相关推荐

2010-09-07 09:31:03

DB2数据库锁表

2010-09-30 11:12:39

DB2数据库卸载

2010-09-01 10:17:14

DB2日志

2010-08-26 11:32:25

DB2时间函数

2011-03-15 11:19:45

DB2数据库catalog

2010-09-01 15:23:59

DB2字段类型

2010-09-06 17:24:48

连接DB2数据库

2011-03-11 16:02:03

DB2数据库安装

2010-08-25 10:50:48

DB2数据库

2010-08-26 16:15:25

DB2数据库管理

2010-09-30 11:49:21

DB2数据库权限

2010-11-03 16:21:18

DB2数据库授权

2010-11-01 11:30:41

DB2数据库权限

2010-09-07 13:22:36

IBM DB2

2010-09-01 10:55:24

db2管理

2010-02-05 09:54:30

DB2数据库应用迁移

2009-07-06 17:34:26

远程复制DB2

2010-11-01 14:19:20

DB2字符串

2010-08-26 16:34:12

DB2Excel读取

2010-09-06 10:00:00

DB2数据库
点赞
收藏

51CTO技术栈公众号