• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Delphi 7 + Microsoft Office Access 2003

  • Автор темы Guest
  • Дата начала
G

Guest

Есть таблицы:

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;

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

Ребят, кто может, пожалуйста подсобите! ))
 
G

Guest

Вопрос, был решен так:
Код:
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;
 
G

Guest

В смысле? Работает ведь и ладно.
М/б действительно не все замечательно, но другого варианта не знаю.
 
G

Guest

Вы знаете почему в машину, двигатель которой расчиан работать на высокоакановом бензине, не заливают, к примеру 76? Работать то все-равно будет и ладно, ан нет - не заливают! ... придурки а ведь он дешевле намного ... все равно не заливают ... хоть кол им на голове теши ...
Я понимаю. но другого варианта я придумать не могу. Если бы мне кто-нить помог я бы был тому очень благодарен. ))
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!