程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> DB2數據庫 >> DB2教程 >> DB2數據庫編譯中那兩個問題會困擾你?

DB2數據庫編譯中那兩個問題會困擾你?

編輯:DB2教程

此文章主要講述的是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. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved