Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Базы данных > CRecordset и комфортная работа с ним


Автор: MoreHate 7.9.2005, 18:36
Господа, подскажите пожалуйста, как быстро и без гимора взять данные из 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.

Автор: chaos 8.9.2005, 07:28
а ты посмотри хелп по CRecordset и все у тебя проясниться

Автор: MoreHate 8.9.2005, 12:43
Пошел читать. К слову сказать, перечитал весь firststeps про odbc...

Автор: MoreHate 8.9.2005, 13:05
Смотрю MSDN. Вот, что вижу:
Код

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


То же самое.

Автор: zefir01 31.3.2006, 03:29
ну может я предложу кривой ответ...

заюзай стандартный (помоему динамическмй называется) экчейндж, если у тя таблиц/ процедур не слишком много, то будет почти нормально и без гемороя. просто на каждую таблицу/процедуру будет по мвоему рекордсету. а если через гетфилдвалуе делать то придется разбираться с огроменной структурой, причём я как понял методом научного тыка. smile

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

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)