Сравнивая два значения разных типов - PullRequest
0 голосов
/ 20 октября 2011

У меня есть оператор if с двумя типами данных, которые я сравниваю друг с другом. rowCount3 - это SQLINTEGER, а chval1[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(), но у меня нет опыта, поэтому я заблудился в лесу! Любая помощь приветствуется. Спасибо.

1 Ответ

2 голосов
/ 20 октября 2011

Оба типа определены следующим образом в <sqltypes.h>

typedef int             SQLINTEGER;
typedef unsigned char   SQLCHAR;

Если вы определили свои переменные как:

SQLINTEGER rowCount3;
SQLCHAR chval1[128];

несовместимые типы. Вы должны использовать преобразование, подобное обычному atoi() преобразованию, как это, и сравнить:

int var = atoi(chval1);
if (rowCount3 >= var)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...