Поиск:

Ответ в темуСоздание новой темы Создание опроса
> CRecordset и комфортная работа с ним 
:(
    Опции темы
MoreHate
Дата 7.9.2005, 18:36 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Господа, подскажите пожалуйста, как быстро и без гимора взять данные из CRecordset'a.
Код

        Record.Requery();

        int i = 0;
        CDBVariant var;
        CString str;

        Record.Move(0);
        
        while(!Record.IsEOF()){

            m_Grid.SetRowCount(m_Grid.GetRowCount() +1);

            //глупо, конечно, но как по-другому я не знаю
            Record.GetFieldValue("f_id", var);
            str.Format("%d", var.m_iVal);
            m_Grid.SetItemText(i+1,0, str);

            i++;
            Record.Move(i);
        }
        Record.Close(); 


Что мне, для каждого запроса отдельную структуру для строк лепить что-ли?!
А если у меня 50 столбцов? Создавать 50 переменных?

Мне кажется, мои проблемы решил бы класс ODBCRecordset, но он отказывается запускаться на .net.
PM MAIL   Вверх
chaos
Дата 8.9.2005, 07:28 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Серийный программист
****


Профиль
Группа: Завсегдатай
Сообщений: 2979
Регистрация: 7.7.2004
Где: Екатеринбург

Репутация: 2
Всего: 44



а ты посмотри хелп по CRecordset и все у тебя проясниться
PM WWW   Вверх
MoreHate
Дата 8.9.2005, 12:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Пошел читать. К слову сказать, перечитал весь firststeps про odbc...
PM MAIL   Вверх
MoreHate
Дата 8.9.2005, 13:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Смотрю MSDN. Вот, что вижу:
Код

   for( short index = 0; index < nFields; index++ )
   {
      rs.GetFieldValue( index, varValue );
      // do something with varValue
   }


То же самое.

PM MAIL   Вверх
zefir01
Дата 31.3.2006, 03:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Awaiting Authorisation
Сообщений: 7
Регистрация: 19.3.2006

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



ну может я предложу кривой ответ...

заюзай стандартный (помоему динамическмй называется) экчейндж, если у тя таблиц/ процедур не слишком много, то будет почти нормально и без гемороя. просто на каждую таблицу/процедуру будет по мвоему рекордсету. а если через гетфилдвалуе делать то придется разбираться с огроменной структурой, причём я как понял методом научного тыка. smile
PM MAIL   Вверх
takedo
Дата 23.5.2006, 05:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Когда создаешь класс, производный от CRecordSet, у тебя в визарде генерятся твои 50 переменных столбцов и когда ты выполняешь record->MoveNext(); они у тебя заполняются как и говорил zefir01 в эксчейндже. Но гемор в том, что практически на каждый запрос надо генерить новый класс. Если не хочешь гемороиться так(хотя это лучше чем иначе), посмотри на rsdn.ru- там статья была про работу с odbc. Но хочу сказать одно - там предлагают через АПИ работать - это тоже тот ещё гемор. Так что выбирай из двух... 


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

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

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


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

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


 




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


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

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