Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Ада и другие языки _ Обновление данных

Автор: 18192123 17.12.2008 5:15

В базе данных есть таблица (база в IBExpert): Specialists [code_spec, surname_spec, name_spec, patronymic_spec, specialization, main_work_seat, dismissal, data_begin_work, data_dism, work_off, dismissal_spec]
В приложении по кнопке "Уволить" нужно обновить данные в базе следующим образом:
dismissal=0 (было 1 при занятии должности)
dismissal_spec="уволен"
data_dism=а здесь дата увольнения
Для реализации этого у меня есть IBQDism, где в поле SQL:


select code_spec,dismissal, dismissal_spec, data_dism from specialists
where surname_spec=:A
and name_spec=:B
and patronymic_spec=:C



Так же есть компонент IBUSQLSpec (TIBUpdateSQL), где в поле ModifySQL прописано:

update specialists
set
dismissal=:dismissal,
dismissal_spec=:dismissal_spec,
data_dism=:data_dism
where
code_spec=:OLD_code_spec



для IBQDism в поле UpdateObject прописала свой компонент IBUSQLSpec..

Обработчик по нажатию кнопки:

IBQDism->Params->ParamByName("A")->AsString=LabEdSurnSpec->Text;
IBQDism->Params->ParamByName("B")->AsString=LabEdName_Sp->Text;
IBQDism->Params->ParamByName("C")->AsString=LabEdPatrSpec->Text;
IBQDism->Active=true;
IBQDism->Edit();
IBQDism->Fields->FieldByName("DISMISSAL")->AsInteger=0;
IBQDism->Fields->FieldByName("DISMISSAL_SPEC")->AsString="уволен";
IBQDism->Fields->FieldByName("DATA_DISM")->AsString="16.12.2008";
IBUSQLSpec->SetParams(ukModify);
IBUSQLSpec->ExecSQL(ukModify);


И всё это дело заканчивается ошибкой (рисунок)..
Подскажите пожалуйста, что я не так делаю? В чём может быть причина?



Эскизы прикрепленных изображений
Прикрепленное изображение

Автор: 18192123 18.12.2008 7:58

Выяснила, что вылет происходит после строки


IBQDism->Edit();


....
Может, кто-нибудь знает, в чём дело...?