Здравствуйте Аноним, вы писали:
А>Здравствуйте, уважаемые... А>Хочу поделится с вами проблемой. Поможите добрым советом. А>Работаю с ODBC API. Для определения параметров поля вызываю функцию SQLDescribeCol — в параметре #6 "DataTypePtr" получаю тип 2. Из Sql.h я понял что это SQL_NUMERIC. Затем передавая этот тип в функцию SQLGetData получаю в RETCODE -1, а значение поля 0. Поле числовое. Что я делаю не так?
1. проверьте версию ODBC — SQL_C_NUMERIC появилась только в ODBC 3.0 (до этого SQL_NUMERIC можно было брать через SQL_C_CHAR)
2. проверьте, что выборка не пуста и курсор установлен на запись (record), т.е. был выполнен какой-нибудь Fetch или SetPos
3. проверьте, что передаёте длину и указатель структуры
struct tagSQL_NUMERIC_STRUCT {
SQLCHAR precision;
SQLSCHAR scale;
SQLCHAR sign;
SQLCHAR val[SQL_MAX_NUMERIC_LEN];
} SQL_NUMERIC_STRUCT;