Здравствуйте retalik, Вы писали:
R>Глючный он, глючный. Получай значения через double (туда уместится):
R>R> CDatabase db;
R> db.Open("Ora");
R> CRecordset rs(&db);
R> rs.Open(CRecordset::forwardOnly, "SELECT count(*) s FROM all_views");
R> CDBVariant v;
R> rs.GetFieldValue("S", v, SQL_C_DOUBLE);
R> CString s;
R> s.Format("Result: %g", v.m_dblVal);
R> MessageBox(s);
R>
Не могли бы вы и мне помочь советом — кусоу кода из DLL
СDatabase я получаю при вызове, но это не суть важно
Используется подключение к Oracle через ODBC при помощи драйвера
"Oracle in OraHome81" SQORA32.DLL версии
8.01.72.00 дата 24.01.01
MDAC стоит версии 2.5(SP 2)
CRecordset rs(&db);
rs.Open(CRecordset::forwardOnly, "SELECT * FROM MyTable");
//в таблице 8 полей
//обращаемся к третьему, а потом к четвертому - типа NUMBER(11)
CDBVariant m_Val;
rs.GetFieldValue((short) 2,m_Val);
rs.GetFieldValue((short) 3,m_Val);
//и на последней строчке появляется ошибка "invalid column number <4>"
А если строчку
rs.GetFieldValue((short) 2,m_Val);
с вызовом третьего поля закоментировать, то все в порядке — четвертое поле достижимо
И эта ошибка появляется только c числовыми полями, а со строковыми полями все нормально
Я пробовал, безрезультатно
rs.GetFieldValue((short) 3,m_Val,SQL_C_DOUBLE);
и
rs.GetFieldValue((short) 3,m_Val,SQL_SLONG);
видимо дело не в этом.