Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Что работает под forwardOnly, то не работает под, dynaset, snapshot, dynamic 
:(
    Опции темы
neosapient
Дата 28.8.2007, 18:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 672
Регистрация: 16.8.2006

Репутация: нет
Всего: 4



Значит есть у меня источник данных, которые можно перенаправить в БД средствами ODBC.
Из всех баз, под рукой оказалась Access.
Создал таблицу, направил данные, всё работает: данные пишуться постоянно.
Далее стоит передомной задача: вытаскивать данные из таблицы и передавать их через сокет...
Понятно, что раз в БД кто-то пишет, то я могу читать.
Открыл учебник по работе с ODBC
http://firststeps.ru/mfc/odbc/
или, что, в общем, тоже самое
http://netcode.ru/?lang=cpp&katID=6&skatID=50
Собрал код
Код

CDatabase cdbMyDB;
cdbMyDB.Open("MyTable",0,1,"ODBC;",1); // открываю только на чтение
if (cdbMyDB.IsOpen()) {
try
{
    CRecordset cr;
    cr.m_pDatabase=&cdbMyDB;
    cr.Open(CRecordset::forwardOnly,"SELECT * FROM Table;",CRecordset::readOnly); // таблица существует и открывается
    short nFields = cr.GetODBCFieldCount(); 
    cr.m_strFilter ="MyInt<0"; // Добавил фильтр для стоба MyInt типа int =)
    cr.Requery(); // И не работет -> обнаружены символы за пределами инструкций SQL
    CDBVariant var;
    short index=0;
    while (!cr.IsEOF())
    {
        cr.GetFieldValue(index,var);
        AfxMessageBox(*var.m_pstring);
        cr.MoveNext();
    }
    cr.Close(); 
}
catch(CDBException* ex)
{
    AfxMessageBox(ex->m_strError);
    ex->Delete();
}

}
else  AfxMessageBox("Not Open");
cdbMyDB.Close();

Это примерный код из главы 9
Код работал, но поставил фильтр 
и он не работает
    cr.m_strFilter ="MyInt<0"; // Добавил фильтр для стоба MyInt типа int =)
    cr.Requery(); // И не работет -> обнаружены символы за пределами инструкций SQL
и код вылетает в исключение
В чем моя ошибка
Помогите исправить

ЗЫ
Проверил, если открывать на чтение и запись (а не только на чтение) проблема не исчезает
_____________


ещё расскажите по подробнее про свойства задаваемые константами
CRecordset::dynaset   
CRecordset::snapshot   
CRecordset::dynamic   
CRecordset::forwardOnly   

В каких случаях следует применять то или иное?



Это сообщение отредактировал(а) neosapient - 28.8.2007, 18:07
PM MAIL   Вверх
neosapient
Дата 29.8.2007, 10:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 672
Регистрация: 16.8.2006

Репутация: нет
Всего: 4



молчание...
может я вопрос задал некорректно?

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C++: Базы данных"
chipset

Данный форум предназначен для обсуждения вопросов прямым образом связанных с C++ и БД. Так, вопросы только по C++ следует задавать в C++:Общие вопросы а вопросы по абстрактным БД в Базах данных или в соответствующих под-форумах.

Благодарим за понимание.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, chipset.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Базы данных | Следующая тема »


 




[ Время генерации скрипта: 0.0553 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.