Oracle
 sql >> Database >  >> RDS >> Oracle

Creazione di una schermata di accesso personalizzata in Oracle Forms 10g

Di seguito è riportato l'esempio di unità plsql per convalidare le credenziali di accesso e, dopo la convalida riuscita, aprire un nuovo modulo passando alcuni parametri ad esso, nei moduli Oracle 10g.
Creare un modulo per l'accesso personalizzato. Crea elementi di testo per nome utente e password ecc. e un pulsante di accesso. Quando l'utente fa clic su quel pulsante di accesso, chiama questa routine plsql.

dichiarare
vPassword fox_user.password%type; -- ottieni un tipo di campo password dalla tabella principale dell'utente
plid paramlist;
begin
-- controlla se il nome utente è null
se :appstart.usn è nullo allora
error_message('Deve essere inserito il nome utente.');
go_item('appstart.usn');
raise Form_Trigger_Failure;
end if;
-- controlla se la password è null
se :appstart.psw è null allora
error_message('La password deve essere inserita.');
go_item('appstart.psw');
raise Form_Trigger_Failure;
end if;
select password in vpassword
from fox_user
where rtrim(userid) =rtrim(:appstart.usn);
-- decrittografa la password usando la tua crittografia / decrypt.
-- di seguito decrypt è un'unità di programma che ho usato
if :appstart.psw !=decrypt(vpassword) then
error_message('Password non valida per l'utente. Accesso negato! ');
go_item('appstart.psw');
raise form_trigger_Failure;
end if;
-- se nome utente e password validi allora crea un elenco di parametri per passare il modulo chiamante
plid :=get_parameter_list('formdata');
if Not 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);
eccezione
quando no_data_found quindi
error_message('ID utente non valido. Inserisci ID utente e password validi. Accesso negato!');
go_item('appstart.usn');
quando too_many_rows then
error_message('Internal error...');
quando altri then
null;
end;