Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
записка к дипломному проекту.docx
Скачиваний:
4
Добавлен:
16.09.2019
Размер:
510.78 Кб
Скачать

1.2.4) Методы решения задачи

Для получения указанных выходных данных по приведённым входным параметрам программа должна выполнить следующие функции:

1)Добавление.

Добавление записи представлено на примере «Добавление теста»

procedure TForm4.BitBtn3Click(Sender: TObject);

begin

if (combobox1.Text<>'') and (edit2.Text<>'') and (edit3.Text<>'') then

begin

datamodule2.IBQuery4.Params.ParamByName('PREDM').Value:=combobox1.Text;

datamodule2.IBQuery4.Params.ParamByName('TEMA').Value:=edit2.Text;

datamodule2.IBQuery4.Params.ParamByName('NAZV_TESTA').Value:=edit3.Text;

datamodule2.IBQuery4.Params.ParamByName('KOLVO_VOPR').Value:=0;

try

datamodule2.IBQuery4.ExecSQL;

except

ShowMessage ('Ошибка при добавлении записи!');

datamodule2.IBTransaction1.RollbackRetaining;

end;

DataModule2.IBTransaction1.CommitRetaining;

datamodule2.IBQuery1.Close;

datamodule2.IBQuery1.Open;

end;

end;

2)Редактирование.

Редактирование записей заключается в изменении значений полей. Редактируется текущая запись, поэтому перед действиями, связанными с редактированием, обычно выполняется операция по поиску и перемещению на требуемую запись. Например для редактирования вопросов выбранного теста использовался следующий код:

procedure TForm3.BitBtn1Click(Sender: TObject);

var n:integer;str33:string;

begin

str33:='';

if (edit4.text<>'') and (edit5.text<>'') and (edit6.text<>'') and (edit7.text<>'') and (edit8.text<>'') and ((checkbox1.Checked=true) or (checkbox2.Checked=true) or (checkbox3.Checked=true) or (checkbox4.Checked=true)) then

begin

datamodule2.IBStoredProc3.StoredProcName:='PROC_TEST2_EDIT';

datamodule2.IBStoredProc3.Prepare;

datamodule2.IBQuery3.Locate('T_NOMER_VOPR',strtoint(label5.Caption),[]);

n:=datamodule2.IBQuery3.fieldbyname('ID_TEST').AsInteger;

datamodule2.IBStoredProc3.ParamByName('param').AsInteger:=n;

datamodule2.IBStoredProc3.ParamByName('otv1').AsString:=edit5.Text;

datamodule2.IBStoredProc3.ParamByName('otv2').AsString:=edit6.Text;

datamodule2.IBStoredProc3.ParamByName('otv3').AsString:=edit7.Text;

datamodule2.IBStoredProc3.ParamByName('otv4').AsString:=edit8.Text;

datamodule2.IBStoredProc3.ParamByName('vopr').AsString:=edit4.Text;

if checkbox1.Checked=true then str33:=str33+'&1';

if checkbox2.Checked=true then str33:=str33+'&2';

if checkbox3.Checked=true then str33:=str33+'&3';

if checkbox4.Checked=true then str33:=str33+'&4';

datamodule2.IBStoredProc3.ParamByName('pr_otv').AsString:=str33;

datamodule2.IBStoredProc3.ExecProc;

DataModule2.IBTransaction1.CommitRetaining;

datamodule2.IBQuery3.Filtered:=false;

datamodule2.IBQuery3.Close; datamodule2.IBQuery3.Open;

datamodule2.IBQuery3.Filtered:=true; end; end;

3)Удаление данных.

Удаление записи из таблицы осуществляется методом Delete.Для удаления теста необходимо выбрать нужный тест и нажать кнопку «Удалить»

procedure TForm6.BitBtn1Click(Sender: TObject);

var n:integer;

begin

if (combobox1.Text<>'') and (combobox2.Text<>'') and (combobox3.Text<>'') then

begin

datamodule2.IBStoredProc1.StoredProcName:='PROC_SALE_DEL';

datamodule2.IBStoredProc1.Prepare;

datamodule2.IBQuery1.Close;

datamodule2.IBQuery1.Open;

datamodule2.IBQuery1.Locate('P_PREDM;P_TEMA;P_NAZV_TESTA',VarArrayOf([combobox1.Text,combobox2.Text,combobox3.Text]),[]);

n:=datamodule2.IBQuery1.fieldbyname('id_PREDM').AsInteger;

datamodule2.IBStoredProc1.ParamByName('param1').AsInteger:=n;

datamodule2.IBStoredProc1.ExecProc;

DataModule2.IBTransaction1.CommitRetaining;

form6.Close;

end else

showmessage('выберите название теста который хотите удалить');

end;