@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);
}
  • Вопрос задан
  • 381 просмотр
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы