| Horse | 
| Отправлено: 02.09.2004, 18:58 |  | 
| 
 Не зарегистрирован
 
 
 
 
 
 
 
  
 | Имеем следующую картину. Есть контрол класса TADODataSet и таблица для отображения данных TADODataGrid. По свойствам ADODataSet я могу определить количество полей и количество записей в базе. Как, имея эти данные, перебрать в цикле все записи конкретного поля и достать из них значения? Пробовал так DBGrid1->Columns->Items[j]->Fileds->Value
 Дальше первой записи не прошел, а как идти, не понятно.
 
 Код цикла:
 for(int j = 0; jFieldCount; j++)
 {
 if(ADODataSet1->Fields->Fields[j]->FieldName == "name")
 {
 for(int k = 0; kRecordCount; k++)
 {
 //вот он и вопрос
 }
 break;
 }
 }
 | 
|  | 
| Horse | 
| Отправлено: 02.09.2004, 19:00 |  | 
| 
 Не зарегистрирован
 
 
 
 
 
 
 
  
 | Простите за неточность. Таблица класса TDBGrid. Не судите строго. просто очень устал и совершаю элементарные ошибки. | 
|  | 
| AVC | 
| Отправлено: 03.09.2004, 08:04 |  | 
| 
 Ветеран
 
 Группа: Модератор
 Сообщений: 1583
 
 
 
  
 | В примере вы перебираете все поля одной записи. Для перебора значений одного поля из всех записей можно так
 TDataSet *ds = DBGrid1->DataSource->DataSet;
 или
 TDataSet *ds = ADODataSet1;
 
 TField *fld = ds->FieldByName("???");
 for (ds->First(); !ds->Eof; ds->Next())
 { ??? fld->Value;
 }
 
 (olegenty я помню ваше замечание про ds, но не могу сдержаться
  ) 
 Отредактировано AVC — 03/09/2004, 08:07
 | 
|  | 
| Gedeon | 
| Отправлено: 03.09.2004, 08:05 |  | 
|  
 Ветеран
 
 Группа: Модератор
 Сообщений: 1742
 
 
 
  
 | Тут ни при чем TDBGrid, все надо добывать из DataSet 
 | CODE |  | int RecValue;
 for(DataSet->First();DataSet->Eof;DataSet->Next){
 // тут и получаем значения по очереди
 RecValue = DataSet->FildByName("YourFild")->AsInteger;
 }
 | 
 
 Отредактировано Gedeon — 03/09/2004, 09:24
 | 
|  |