02 February 2012

Oracle Forms, Headstart and error messages


The moment your Form logs into the Oracle Database and an error occurs, for example when your password has been expired, it is no longer possible to retrieve the error from the database. With older version of the database it still worked and the Headstart error message could be retreived. The 10gR2  database has become more secure and when the error can not be retrieved it will result in a FRM-92xxx error.

I changed the on-error trigger in the template(qms65tpl) by adding the following code

ON-ERROR
-- ORA-28001 - account expired
-- ORA-01017 - invalid username/password
-- ORA-00988 - missing or invalid password
-- FRM-92100 - passwords do not match
begin
  if (ERROR_TYPE = 'ORA' and to_char(ERROR_CODE) = '28001')
    or (ERROR_TYPE = 'ORA' and to_char(ERROR_CODE) = '1017')
    or (ERROR_TYPE = 'ORA' and to_char(ERROR_CODE) = '988' )
    or (ERROR_TYPE = 'FRM' and to_char(ERROR_CODE) = '92110')
  then
    message (ERROR_TYPE||'-'||to_char(ERROR_CODE)||': '||ERROR_TEXT);
  else
    qms$event_form('ON-ERROR');
  end if;
end;

0 reacties:

Post a Comment