Създайте формуляр за персонализирано влизане. Създайте текстови елементи за потребителско име и парола и т.н. и бутон за влизане. Когато потребителят щракне върху този бутон за влизане, извикайте тази програма plsql.
декларира
vPassword fox_user.password%type; -- вземете тип поле за парола от вашата главна таблица на потребителя
plid paramlist;
започнете
-- проверете дали потребителското име е нулево
ако :appstart.usn е нула тогава
error_message('Потребителско име трябва да бъде въведено.');
go_item('appstart.usn');
повдигнете Form_Trigger_Failure;
край ако;
-- проверете дали паролата е null
ако :appstart.psw е null, тогава
error_message('Паролата трябва да бъде въведена.');
go_item('appstart.psw');
повдигнете Form_Trigger_Failure;
край ако;
изберете парола във vpassword
от fox_user
където rtrim(userid) =rtrim(:appstart.usn);
-- декриптирайте паролата, като използвате вашето собствено криптиране / метод за декриптиране.
-- по-долу споменатото декриптиране е програмна единица, която използвах
if :appstart.psw !=decrypt(vpassword) then
error_message('Невалидна парола за потребителя. Отказано влизане! ');
go_item('appstart.psw');
повдигнете form_trigger_Failure;
end if;
-- ако са валидни потребителско име и парола, тогава създайте списък с параметри, за да предадете извикващата форма
plid :=get_parameter_list('formdata');
ако не е id_null(plid) then
Destroy_parameter_list(plid);
end if;
plid :=Create_Parameter_list('formdata');
Add_parameter(plid, 'userid', text_parameter, :appstart.usn);
new_form('main', full_rollback, no_query_only, plid);
изключение
когато няма_данни_намерени тогава
error_message('Невалиден потребителски идентификатор. Моля, въведете валиден потребителски идентификатор и парола. Влизането е отказано!');
go_item('appstart.usn');
когато too_many_rows then
error_message('Вътрешна грешка...');
когато други тогава
null;
end;