Разработка тестирующей программы
13

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;