Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Проблема с базой

15K
06 мая 2006 года
avgousto
7 / / 11.04.2006
Для того чтоб узнать значения всех полей в базе делаю так
void CPrm::setQ(CRecordset* q)
{

CODBCFieldInfo fieldInfo;
CString fieldValue;

try{
int fieldsCount=q->GetODBCFieldCount();
for (int i=0;i<fieldsCount;i++)
{
q->GetODBCFieldInfo(i,fieldInfo);
q->GetFieldValue (i,fieldValue);

qFieldsMap[fieldInfo.m_strName]=fieldValue;
}
}
catch (CDBException* e)
{
e->ReportError();
e->Delete();
}
}

проблема возникает когда эту функцию с одним и тем же Recordset'ом вызываю второй и более раз
-выбрасывает исключение, причем пустым сообщением, опытным путем установил, что данное исключение выбрасывает операция q->GetFieldValue(i,fieldValue). Не могу понять в чем же дело. Если сменить рекордсет все работает прекрасно

Как-будто какой-то курсор перемещает, который надо ставить всегда в начале этой операции на начало рекордсета. Что я не знаю.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог