Re[5]: ODBC
От: retalik www.airbandits.com/
Дата: 25.10.01 07:53
Оценка:
Здравствуйте Izverg, Вы писали:


I>Спасибо за совет..все заработало...Единственно Если через CDatabase стучаться к базе, то все работает...

I>а если используя только CRecordset, то нифига. и почему работает только если параметр forwardOnly стоит в остальных ошибку выдает...

Через CRecordset не работает по той же причине — при этом создается CDatabase с параметром по умолчанию, который требует этих самых SQLFetchScroll. Зачем они ему — бог его знает... Какой-то продвинутый биндинг ему нужен. Поэтому мне Microsoft ODBC и не нравится.

BTW: очень советую взглянуть на OTL ( http://www.geocities.com/skuchin/otl/home.htm ) — производительнось и переносимость программ для Oracle резко повысится, а проблемы ODBC растают, как дым.

I>Кстати не подскажешь где моя ошибка...

I>Проблема вот вчем...я не могу получить значение типа "numeric" выдаеться ошибка:
I> "Error in column 1: Numeric value out of range" (со строковыми все в порядке)

Глючный он, глючный. Получай значения через double (туда уместится):

    CDatabase db;
    db.Open("Ora");
    CRecordset rs(&db);
    rs.Open(CRecordset::forwardOnly, "SELECT count(*) s FROM all_views");
    CDBVariant v;
    rs.GetFieldValue("S", v, SQL_C_DOUBLE);
    CString s;
    s.Format("Result: %g", v.m_dblVal);
    MessageBox(s);
Успехов,
Виталий.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.