Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

CheckListBox & Query


sensor-x ©   (2003-07-30 05:01:00) 

Уважаемые мастера, помогите разобраться, трабла у меня вот в чем: на форме есть Database1,Query1 и CheckListBox1.
Query1.SQL := select NAM from dbo.kp
Мне нужно чтобы при нажатии на кнопку (Button1) все строки из колонки NAM, таблицы kp, отобразились в CheckListBox"e
Листинг:
procedure TForm1.Button1Click(Sender: TObject);
var i: integer;
begin
for I:= 0 to Query1.FieldCount - 1 do begin
CheckListBox1.Items.Add(Query1.Fields.Fields[i].AsString);
end;
end;

Только в итоге добавляется в листбокс одна (первая) строка. Подскажите в чем моя ошибка?
Заранее спасибо.


Evgeny V   (2003-07-30 05:24:00) [1]

По условию ты хочешь все записи(строки) по колонке NAM, а получаешь значения всех полей для одной записи. Надо так(считаем что запрос уже выполнился и еще не закрыт, сорьки код на си) -
void __fastcall TForm1::Button1Click(Sender *TObject)
{
while(!Query1.Eof)
{
CheckListBox1->Items->Add(Query1->FieldByName("NAM")->AsString);
Query1->Next();
}
}
Так как ты запрашиваешь одну колонку, можно вместо Query1->FieldByName("NAM")->AsString
делать Query1->Fields->Fields[0]->AsString Ну и вообще неплохо было бы очищать лист бокс перед заполнением:-)))


Наверх

Титульная страница Поиск, карта сайта Написать письмо