Модераторы: Rodman
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Тест делфи c БД access, Вывод ответов из радиобаттон 
:(
    Опции темы
RedSid
  Дата 18.1.2016, 08:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Добрый день! У меня тест подключен к БД, вопросы и ответы из БД выводятся в радиобаттон, при нажатии на кнопку "следующий вопрос" выводится следующий вопрос) 
Как сделать чтобы при нажатии на кнопку "следующий вопрос" выбранный мною ответ сохранялся в БД? В таблице, куда должны сохраняться ответы, для каждого ответа свое поле. Помогите пожалуйста, заранее спасибо))
PM MAIL   Вверх
mikeyess
Дата 19.1.2016, 10:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



В чем проблема. Мною написаны не менее 6 подобных тестов с различными типами данных (текст, рисунок, выбор из вариантов ...).
С уважением, Mike

Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
Garmahis
Дата 20.1.2016, 09:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Какая бд? Какая структура таблиц? 
PM   Вверх
RedSid
Дата 20.1.2016, 10:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(Garmahis @ 20.1.2016,  09:26)
Какая бд? Какая структура таблиц?

БД Access, в формате .mdb, таблица состоит из полей 1,2,3...20. Количество полей по равно количеству вопросов. В эти поля должны сохраняться полученные вариантов ответа.
PM MAIL   Вверх
Garmahis
Дата 20.1.2016, 10:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



вариант это цифра? Переход к следующему вопросу идет по он клик на радио батане или кнопке? Количество вариантов ответов всегда одинаково?
В общем на мой взгляд тут правильно использовать не просто рабобаттон а RadioGroup. Тогда вы легко туда сможете пихать вопросы и сохранять ItemIndex
PM   Вверх
RedSid
Дата 20.1.2016, 11:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(Garmahis @ 20.1.2016,  10:42)
вариант это цифра? Переход к следующему вопросу идет по он клик на радио батане или кнопке? Количество вариантов ответов всегда одинаково?
В общем на мой взгляд тут правильно использовать не просто рабобаттон а RadioGroup. Тогда вы легко туда сможете пихать вопросы и сохранять ItemIndex

Есть таблица с 20 вопросами, на каждый вопрос 3 ответа: Да, Нет, Не знаю. Переход к следующему вопросу по кнопке "далее". В той таблице куда надо сохранить вариант ответа 20 полей. Используется RadioGroup

Добавлено через 2 минуты и 11 секунд
Ответ на первый вопрос ответ заносится в поле 1, на второй вопрос во поле 2 и т.д.
PM MAIL   Вверх
Garmahis
Дата 20.1.2016, 14:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Вообще структура не правильная. В таблице куда заносятся ответы должно быть поле ID, ID отвечающего, ID вопроса и номер ответа. В вашем случае получается дурацкая ситуация перед началосм теста вам надо сделать инсерт в таблицу новой записи. И при каждом ответе вы должны ее апдейтить... Соотвественно у вас должен быть некий Count в котором вы храните нмер вопроса. И если в вашей таблице филды имеют названия например N где N - число от 1 до 20 вам надо в в запросе менять название поля.
Код

Sql = 'UPDATE TABLE Table1 SET '+IntToStr(N)+'=@Param1 WHERE ID = @Param2' 

PM   Вверх
RedSid
Дата 22.1.2016, 10:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Код


procedure TForm5.Button4Click(Sender: TObject);   //кнопка начать тест
begin
radiogroup1.Visible:=true;
button4.Visible:=false;
button1.Visible:=true;
with adotable1 do begin

 RadioGroup1.Caption:=fieldbyname('vopr').AsString;
 RadioGroup1.Items.Clear;
 RadioGroup1.Items.Add(ADOTable1otv1.Value);
 RadioGroup1.Items.Add(ADOTable1otv2.Value);
 RadioGroup1.Items.Add(ADOTable1otv3.Value);

   end;


end;


procedure TForm5.Button1Click(Sender: TObject); //кнопка следующий вопрос
begin
if RadioGroup1.ItemIndex > -1 then
Begin
if  not ADOTable1.Eof then
 begin

 ADOtable2.Last;
 ADOtable2.Insert;
 ADOTable2[i].Value:=ADOtable1id.Value;
 ADOtable2[i].Value:=RadioGroup1.ItemIndex;
 ADOtable2.post;
 ADOTable1.Next;
 RadioGroup1.Caption:=ADOTable1Vopr.Value;
 RadioGroup1.Items.Clear;
 RadioGroup1.Items.Add(ADOTable1otv1.Value);
 RadioGroup1.Items.Add(ADOTable1otv2.Value);
 RadioGroup1.Items.Add(ADOTable1otv3.Value);
 
Sql = 'UPDATE TABLE Table1 SET '+IntToStr(N)+'=@Param1 WHERE ID = @Param2'  
//это получается сюда записать? Вместо "param1 что записать?


 end
   else if MessageDlg('Тест окончен закрыть программу?',mtConfirmation, mbOKCancel, 0) =mrOK  then
     Form1.Close;
end
 else  ShowMessage ('Выберите ответ!')
end;



Это сообщение отредактировал(а) RedSid - 22.1.2016, 10:05
PM MAIL   Вверх
Google
  Дата 24.11.2017, 13:58 (ссылка)  





  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

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

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


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


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

FAQ раздела лежит здесь!


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

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




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


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

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