Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Delphi 7 + Microsoft Office Access 2003
Форум программистов > Системное программирование > Delphi и Pascal > Delphi - Базы данных
Лунатик
Есть таблицы:

Vopros(<B>id_vopros</B>, vopros)
otvet(<B>id_otvet</B>, id_vopros, otvet)


Они связаны.

Есть компонент TDBLookupListBox в котором отображается список вопросов из таблицы Vopros.
Пользователь совершает событие onClick по одной из строк ЛистБокса (строка=вопрос).
Каждый вопрос имеет несколько вариантов ответов (как в тесте), которые содержаться в таблице otvet.
Есть компонент TDBRadioGroup, куда и выводятся ответы на соответствующий вопрос, где каждая радиокнопка - вариант ответа.

Т.к. изначально мы не задаем фиксированное количество радиокнопок, то т.о. они должны добавляться динамически, черпая информацию о количестве кнопок, в БД--> otvet

<B>Как реализовать это обращение к БД и последующее динамическое добавление я не знаю.</B>

----
ПС.
Мои догадки:
Вероятно надо, во-первых, определить количество вариантов ответов по текущему вопросу.
Потом добавить их в виде радиокнопок.

Предполагаю, что нужен цикл:

procedure TForm1.DBLookupListBox1Click(Sender: TObject);
begin
while ADOTableRadio1.Eof <> true do
begin
DBRadioGroup1.Items.Add('select count(*) from otvet where id_vopros = :id_vopros');
end;
end;


Вроде бы программа запускается, но когда совершаю указанное событие - зависает и в месте, где д/б радио кнопки - что-то похожее на вкл/выкл - мерцание.

Ребят, кто может, пожалуйста подсобите! ))
sax_ol
Для: Лунатик
Вы хелп по TDBLookupListBox читали?
Лунатик
Вопрос, был решен так:
procedure TForm1.DBLookupListBox1Click(Sender: TObject);
begin
  DBRadioGroup1.Items.Clear;
    ADOTableRadio1.First;
  while not ADOTableRadio1.Eof do
  begin
    DBRadioGroup1.Items.Add(ADOTableRadio1.FieldValues['otvet']);
    ADOTableRadio1.Next;
  end;
end;
sax_ol
Для: Лунатик
Вот прекрасный образчик кода, за который надо подвешивать за ... и без права обжалования!
Лунатик
В смысле? Работает ведь и ладно.
М/б действительно не все замечательно, но другого варианта не знаю.
sax_ol
Цитата(Лунатик @ 5:02:2008, 20:18 )
Работает ведь и ладно.

Вы знаете почему в машину, двигатель которой расчиан работать на высокоакановом бензине, не заливают, к примеру 76? Работать то все-равно будет и ладно, ан нет - не заливают! ... придурки а ведь он дешевле намного ... все равно не заливают ... хоть кол им на голове теши ...
Лунатик
Цитата(sax_ol @ 6:02:2008, 01:54 ) *
Вы знаете почему в машину, двигатель которой расчиан работать на высокоакановом бензине, не заливают, к примеру 76? Работать то все-равно будет и ладно, ан нет - не заливают! ... придурки а ведь он дешевле намного ... все равно не заливают ... хоть кол им на голове теши ...

Я понимаю. но другого варианта я придумать не могу. Если бы мне кто-нить помог я бы был тому очень благодарен. ))
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2008 IPS, Inc.