Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.01.2012, 20:51   #1
Dexes
Пользователь
 
Регистрация: 27.12.2011
Сообщений: 86
По умолчанию Работа с DBGrid

Есть DBGrid и ListBox.
В DBGrid выведены данные в 2 столбца (id, name).
Как из DBGrid эти данные вывести в ListBox (одна строка IntToStr(id)+": "+name)? Вызывает затруднение обращение к ячейкам DBGrid, и как узнать количество строк в DBGrid?

Последний раз редактировалось Dexes; 04.01.2012 в 21:06.
Dexes вне форума Ответить с цитированием
Старый 04.01.2012, 21:49   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Данные брать не из DBGrid, а из DataSet, на который грид ссылается через DataSource, в нем же кол-во записей RecordCount
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 05.01.2012, 12:07   #3
Dexes
Пользователь
 
Регистрация: 27.12.2011
Сообщений: 86
По умолчанию

RecordCount нашел)
А сами данные из таблицы (названия полей и данные таблицы) где лежат после выполнения запроса?
Пытался вытянуть через DataSet.Fields, но безрезультатно...
Код:
  ShowMessage(inttostr(SDS.DataSet.RecordCount));
  i:=0;
  while not SDS.DataSet.Eof do
    begin
      S:=SDS.DataSet.FieldByName('room').AsString; //room - имя столбца в таблице
      ListBox1.Items.Add(S);
      SDS.DataSet.Next;
      inc(i);
    end;
  showmessage(inttostr(i));
в i лежит 0
в SDS.DataSet.RecordCount лежит 3 (в таблице 3 строки)
ListBox1 остается пустым...
P.S. Данные не в DBGrid, а в TSimpleDataSet уже...)

Последний раз редактировалось Dexes; 05.01.2012 в 12:23.
Dexes вне форума Ответить с цитированием
Старый 05.01.2012, 12:35   #4
Dexes
Пользователь
 
Регистрация: 27.12.2011
Сообщений: 86
По умолчанию

Разобрался, оказалось не прописывал "SDS.DataSet.Open;" перед циклом
Dexes вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
работа с dbGrid Анастас Помощь студентам 0 03.11.2011 23:26
работа с DBGrid JinZh C++ Builder 3 10.05.2011 19:32
Работа с DBGrid Марк Охман БД в Delphi 10 26.09.2010 20:58
Работа с dbgrid. Antik163RUS БД в Delphi 3 24.09.2008 20:37