Re[4]: ODBC
От: Izverg  
Дата: 25.10.01 06:40
Оценка:
R>У меня установлен, по-моему, MDAC 2.5 (с SP4).
R>Решил я, значит, проверить это дело. Сляпал тестовый проектик, запускаю — а он мне такую же ошибку выдает!
R>Найдя челюсть где-то на полу, я немного исправил вызов CRecordset::Open. Такой код работает:
R>
R>    CDatabase db;
R>    db.Open("Ora"); // dsn указывает на Microsoft ODBC for Oracle, v. 2.573.4403.00 от 25.08.00
R>    CRecordset rs(&db);
R>    rs.Open(CRecordset::forwardOnly, "SELECT SIN(.5) s FROM dual");
R>    CString val;
R>    if(rs.IsEOF()) val="Eof!";
R>    else rs.GetFieldValue("S", val);
R>    MessageBox(val);
R>


R>Первоначально было так:

R>
R>    rs.Open(AFX_DB_USE_DEFAULT_TYPE, "SELECT SIN(.5) s FROM dual");
R>


R>Если проблемы остаются, код — в студию! :)



Спасибо за совет..все заработало...Единственно Если через CDatabase стучаться к базе, то все работает...
а если используя только CRecordset, то нифига. и почему работает только если параметр forwardOnly стоит в остальных ошибку выдает...
Кстати не подскажешь где моя ошибка...
Проблема вот вчем...я не могу получить значение типа "numeric" выдаеться ошибка:
"Error in column 1: Numeric value out of range" (со строковыми все в порядке)


CDatabase db;
db.Open( _T( "Oracle instance" ));
CRecordset rs(&db);
rs.Open(CRecordset::forwardOnly, "SELECT F.BYTES FROM DBA_DATA_FILES F");
//CString varValue;
CDBVariant varValue;
while( !rs.IsEOF( ) )
{
rs.GetFieldValue((short)0, varValue);

//********
}
rs.MoveNext( );
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.