Re[6]: ODBC
От: Бондаренко Николай Россия  
Дата: 23.05.02 06:47
Оценка:
Здравствуйте 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);

видимо дело не в этом.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.