Я не верю в это - насколько я знаю, все возвращается как символ *, который затем вы можете интерпретировать.
Если вы выбираете значения, относящиеся к перечислению, используйте
int res = atoi(row[0])
тогда
switch(res)
{
case ENUM_VAL_1:
break;
}
Для двойников используйте что-то вроде strtod () для преобразования из char *. (Это также проверяет на отсутствие номеров)