Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Recordset - чтение записей 
:(
    Опции темы
Фолко
Дата 20.5.2007, 00:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Всем доброго времени суток!

Подскажите пожалуйста!
Такая проблемка возникла - 
есть компонент ADOQuery я в него читаю таблицу (select * from table1).
Затем я хочу пройти по всем записям этой таблицы - прочитать каждое поле.

Как получить доступ к записям и полям этих записей ?

Я так понял, что надо использовать ADOQuery->Recordset->... а что дальше не пойму... smile

Заранее спасибо.
PM MAIL ICQ   Вверх
Данкинг
Дата 20.5.2007, 08:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

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



На Дельфи - так:

Код

a:=ADOQuery.FieldValues['pole'];


На Билдере - с соответствующими поправками, я его плохо знаю...


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Фолко
Дата 20.5.2007, 09:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Немного разобрался, но не совсем... smile Сделал так
Код

void __fastcall TForm1::BtnClick(TObject *Sender)
{
   QueryProducers->First();
   for (int i=0; i < QueryProducers->RecordCount; i++) {

      ShowMessage(QueryProducers->FieldByName("producerName")->AsString);

      QueryProducers->Next();

   }
}

QueryProducers - компонент ADOQuery
producerName - название первого поля в моей таблице

Но появился другой вопрос:
Насколько я понял есть три способа доступа:
1) По имени поля - как у меня, так программа работает нормально

2) По порядковому индексу - а так не работает :(

Пишу
Код

     QueryProducers->Fields[0]->AsString;

Ругается 'Pointer to structure required on left side of -> or ->*'
После Fields[0] не получается поставить ->


Не подскажите как решить можно?
По номеру поля гораздо удобней обращаться.

3) И третий способ по имени объекта, но насколько я понял им нельзя пользоваться когда
создаеш набор данных программно
PM MAIL ICQ   Вверх
Anikmar
Дата 21.5.2007, 09:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(Фолко @  20.5.2007,  09:50 Найти цитируемый пост)
QueryProducers->Fields[0]->AsString;

Так не правильно. Надо так:
QueryProducers->Fields->Fields[0]->.....

Пример из хелпа билдера:
Код

void __fastcall TForm1::Button1Click(TObject *Sender)
{
  AnsiString Info("The fields are: ");
  for(int i = 0; i < Table1->FieldCount; i++)
    Info = Info + Table1->Fields->Fields[i]->FieldName + ", ";
  ShowMessage(Info);
}


PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


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

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


 




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


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

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