2011-10-20 245 views
0

我有一個if語句與兩個數據類型,我正在比較彼此。 rowCount3SQLINTEGERchval1[128]SQLCHAR。我嘗試了幾種不同的類型轉換;沒有成功。比較不同類型的兩個值

我已經試過:

if((SQLCHAR)rowcount3 >= (SQLCHAR)chval1) 

這隻能有時。當我做一個printf()來檢查返回值時,它們都會打印出數字。

printf("Total of Downloads: %d\n",rowCount3); 
printf("Quota of IP Address: %s\n", chval1); 

我已經得到最接近的是最近的(工作的〜60%的時間):

if (rowCount3 >= chval1) 

有人建議strcmp(),但我與,所以我在迷失的沒有經驗樹木!任何幫助表示讚賞。謝謝。

+0

這聽起來像你想比較兩個字符指針,在這種情況下,你絕對應該使用'的strcmp()'。 – 2011-10-20 05:41:04

+0

好的,但我對如何做到這一點無能爲力。你能告訴我怎麼樣?謝謝。 –

+0

函數原型是'int strcmp(const char * str1,const char * str2)'。如果返回0,則字符串相等。 – 2011-10-20 05:45:15

回答

2

這兩種類型被定義爲<sqltypes.h>

typedef int    SQLINTEGER; 
typedef unsigned char SQLCHAR; 

下如果你定義了你的變量,比如:

SQLINTEGER rowCount3; 
SQLCHAR chval1[128]; 

是不兼容的類型。您必須使用轉換像一個正常atoi()轉換這樣和比較:

int var = atoi(chval1); 
if (rowCount3 >= var) 
+0

這應該工作,但我得到一個錯誤... SQLCHAR *與此類atoi(chval1)上的類型爲const char *的參數不兼容這怎麼解決?謝謝。 –

+0

'int var = atoi(reinterpret_cast (chval1));' –

+0

謝謝Tio。得到它的工作。 –