Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 06.07.2010, 12:35
Botaniq Botaniq вне форума
Новичок
 
Регистрация: 20.06.2010
Сообщения: 64
Репутация: 10
По умолчанию Нужна помощь при вставке 4 значений в таблицу при выборе через CheckBox

Здравствуйте!
Есть форма. На ней выбирается тест, записывается запрос и 4 ответа.
Необходимо выбрать правильный ответ(выбор ответа-checkbox, при выборе должно записаться в базу слово 'Да'), а остальные ответы должны записаться со словом 'Нет'.
При заполнении всех полей на форме, после чего нажимается кнопка.
Как сделать чтобы к одному ответу записалось 'Да', а остальным 'Нет'???
Вложения
Тип файла: rar Форма.rar (18.6 Кбайт, 5 просмотров)

Последний раз редактировалось Botaniq, 06.07.2010 в 12:51.
Ответить с цитированием
  #2  
Старый 06.07.2010, 12:51
Botaniq Botaniq вне форума
Новичок
 
Регистрация: 20.06.2010
Сообщения: 64
Репутация: 10
По умолчанию Нужна помощь при вставке 4 значений в таблицу при выборе через CheckBox

Необходимо чтобы вставились 4 ответа на 1 вопрос в таблицу Answer(id_test,id_quest,id_answer,answer,correct_a nswer)
Вложения
Тип файла: rar Схема БД.rar (15.6 Кбайт, 4 просмотров)
Ответить с цитированием
  #3  
Старый 06.07.2010, 14:41
Black Raider Black Raider вне форума
Местный
 
Регистрация: 31.05.2010
Адрес: Москва
Сообщения: 466
Версия Delphi: 7
Репутация: 40
По умолчанию

ну и в чем проблема?
Код:
if checkbox1.checked then st:='Да'
else st:='Нет';
{Тут Insert в таблицу можно вынести в процедуру Прос1 и передать значения в ее параметры}
if checkbox2.checked then st:='Да'
else st:='Нет';
{Тут Insert в таблицу либо вызов прос1}
if checkbox3.checked then st:='Да'
else st:='Нет';
{Тут Insert в таблицу либо вызов прос1}
if checkbox4.checked then st:='Да'
else st:='Нет';
{Тут Insert в таблицу либо вызов прос1}

либо:

В цикле перебираем компоненты если это компонент класса TCheckbox
то берем найденный компонент и проверяем checked и записываем.
Ответить с цитированием
  #4  
Старый 06.07.2010, 15:22
Botaniq Botaniq вне форума
Новичок
 
Регистрация: 20.06.2010
Сообщения: 64
Репутация: 10
По умолчанию

а можно код с циклом по checkbox??
Плиз
Ответить с цитированием
  #5  
Старый 06.07.2010, 17:09
Black Raider Black Raider вне форума
Местный
 
Регистрация: 31.05.2010
Адрес: Москва
Сообщения: 466
Версия Delphi: 7
Репутация: 40
По умолчанию

Уже ж давали про Edit

Под рукой Дельфи нет так что если что подправьте:

Код:
for i:=0 to Form1.ComponentCount-1 do
begin
  if (form1.components[i] is TCheckbox) then begin
    if (form1.components[i] as TCheckbox).checked then  st:='ДА'
    else st:='Нет';
    //INSERT to TABLE
  end;
end;

где то так.
Ответить с цитированием
  #6  
Старый 07.07.2010, 16:31
Botaniq Botaniq вне форума
Новичок
 
Регистрация: 20.06.2010
Сообщения: 64
Репутация: 10
По умолчанию

Цитата:
procedure TForm7.BitBtn5Click(Sender: TObject);
var
st: string;
i,j: integer;
begin
DataModule2.ODS_QuestID_TEST.AsInteger:=form7.DBLo okupComboBox1.KeyValue;
DataModule2.ODS_QuestQUEST.AsString:=form7.Memo1.L ines.Text;
DataModule2.ODS_Quest.Post;
for i:=0 to form7.ComponentCount-1 do
begin
if (form7.Components[i] is TCheckBox) then
begin
if (form7.Components[i] as TCheckBox).Checked
then st:='Да' else
st:='Нет';
DataModule2.ODS_Answer.Insert;
DataModule2.ODS_AnswerID_QUEST.AsInteger:=DataModu le2.ODS_QuestID_QUEST.AsInteger+1;
DataModule2.ODS_AnswerID_TEST.AsInteger:=DataModul e2.ODS_QuestID_TEST.AsInteger;
DataModule2.ODS_AnswerANSWER.AsString:=form7.Edit2 .Text;
DataModule2.ODS_AnswerANSWER.AsString:=form7.Edit3 .Text;
DataModule2.ODS_AnswerANSWER.AsString:=form7.Edit4 .Text;
DataModule2.ODS_AnswerANSWER.AsString:=form7.Edit5 .Text;
DataModule2.ODS_AnswerCORRECT_ANSWER.AsString:=st;
DataModule2.ODS_Answer.Post;
end;
end;
end;
при таком коде вставляется только edit5 4 раза, а то что было записано в edit2,edit3,edit4 не записывается в таблицу
Вложения
Тип файла: rar Пример данных из таблицы.rar (3.2 Кбайт, 5 просмотров)
Ответить с цитированием
  #7  
Старый 07.07.2010, 17:07
Black Raider Black Raider вне форума
Местный
 
Регистрация: 31.05.2010
Адрес: Москва
Сообщения: 466
Версия Delphi: 7
Репутация: 40
По умолчанию

При таком коде есстественно вставится edit5 -4 раза.
ибо :
Цитата:
DataModule2.ODS_AnswerANSWER.AsString:=form7.Edit2 .Text;
DataModule2.ODS_AnswerANSWER.AsString:=form7.Edit3 .Text;
DataModule2.ODS_AnswerANSWER.AsString:=form7.Edit4 .Text;
DataModule2.ODS_AnswerANSWER.AsString:=form7.Edit5 .Text;
параметру присваиваешь вначале edit2,потом edit3 и т.д. до edit5
и перед выполнением запроса параметр = edit5.
Ответить с цитированием
  #8  
Старый 07.07.2010, 17:31
Botaniq Botaniq вне форума
Новичок
 
Регистрация: 20.06.2010
Сообщения: 64
Репутация: 10
По умолчанию

Не могли бы Вы помочь с кодом.
Я буду очень Вам признателен
Ответить с цитированием
  #9  
Старый 07.07.2010, 17:34
Black Raider Black Raider вне форума
Местный
 
Регистрация: 31.05.2010
Адрес: Москва
Сообщения: 466
Версия Delphi: 7
Репутация: 40
По умолчанию

в личку ответил.
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 22:18.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter