Задать вопрос
@Pavel242

При получении числовых значений через odbc в microsoft visual c++ через GetFieldValue возникает исключение, чем порекомендуете лечить?

Если при получении числовых значений или результатов функции типа count не указывать третий параметр в GetFieldValue как SQL_C_SLONG, то возникает исключение "Ошибка в столбце 1. Числовое значение выходит за пределы допустимого диапазона". Если только возвращаемое значение меньше 100, то все порядке. База данных - ORACLE. Явно прописывать получаемый тип очень бы не хотелось, есть ли какое решение?

Простой пример для демонстрации привожу

CDatabase base;
base.OpenEx(_T("DSN=db;UID=user;PWD=password"));

CRecordset rs(&base);
rs.Open(CRecordset::forwardOnly, _T("select 101 from dual"), CRecordset::readOnly);

CDBVariant var;
try {
   rs.GetFieldValue((short)0, var);
}
catch(CException *e) {
    char buffer[255];
    e->GetErrorMessage(buffer, 255);
}
  • Вопрос задан
  • 415 просмотров
Подписаться 1 Оценить 4 комментария
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Разработчик C++
    9 месяцев
    Далее
  • Нетология
    Специалист по информационной безопасности + нейросети
    12 месяцев
    Далее
  • Компьютерная академия «TOP»
    Учебная программа “Разработка программного обеспечения”
    30 месяцев
    Далее
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы