Как вызвать оповещение в форме входа в Oracle Forms Builder? - PullRequest
0 голосов
/ 13 июня 2018

Я успешно создал форму входа в Oracle Forms Builder 11g.

Я создал предупреждающее сообщение, когда пользователь вводит неверное имя пользователя или пароль.

Мой код при нажатии кнопки входа:

DECLARE
    v_login VARCHAR2(300);  
BEGIN
    SELECT 'x' 
      INTO v_login
      FROM users
      WHERE user_name = :login.user_name
        AND password = :login.password;

    IF SQL%FOUND THEN
        OPEN_FORM ('');
    END IF; 
END;

Как вызвать оповещение в этом коде?

1 Ответ

0 голосов
/ 13 июня 2018

Самый простой способ - вызвать встроенный MESSAGE дважды, последовательно.Зачем?Поскольку первый выводит сообщение в строке состояния, а второй заставит всплывающее окно открыться и, следовательно, более заметен.

Например:

declare
  v_login varchar2(1);
begin
  select max('x')   --> MAX to avoid no_data_found
    into v_login
    from users
    where user_name = :login.user_name
      and password  = :login.password;

  if v_login is null then
     message('Invalid credentials');   --> call MESSAGE twice
     message('Invalid credentials'); 
  else
     open_form('');
  end if;
end;

PS Barbaros отредактировал мой код, удалив текст сообщения во втором MESSAGE вызове:

 message('Invalid credentials');   --> call MESSAGE twice
 message('');

Ну, это неправильно (по крайней мере, в версиях Forms, которые я использовал).Вы должны использовать текст сообщения в обоих выражениях, иначе оно не будет работать должным образом.Поэтому я отменил ваши изменения.

...