【发布时间】:2017-12-23 06:55:26
【问题描述】:
我正在使用 Oracle Forms 10g 构建一个 GUI,通过填写表单将用户添加到数据库。以下是我在Add User 按钮上的when-button-pressed 触发器上使用的代码:
代码:
declare
firstname VARCHAR(15);
lastname VARCHAR(15);
usernameee VARCHAR(15);
emailll VARCHAR(15);
pass1 VARCHAR(15);
pass2 VARCHAR(15);
v varchar2(200);
begin
firstname := :HOMEADMIN1.TXTFIRSTNAME;
lastname := :HOMEADMIN1.TXTLASTNAME;
usernameee := :HOMEADMIN1.TXTUSERNAME;
emailll := :HOMEADMIN1.TXTEMAIL;
pass1 := :HOMEADMIN1.TXTPASSWORD;
pass2 := :HOMEADMIN1.TXTPASSWORD2;
if firstname is null or lastname is null or usernameee is null or
emailll is null or pass1 is null or pass2 is null then
message('Please fill all fields');
else
select Firstname into v from Person where Username = usernameee;
if sql%found then
message('This username is already taken');
else
select Firstname into v from Person where Email = emailll;
if sql%found then
message('This email is already taken');
else
insert into Person values (PersonSeq.nextval,firstname,lastname,usernameee,pass1,emailll,0,1);
commit;
end if;
end if;
end if;
end;
此代码检查是否所有输入 textboxes 都已填充(有效),然后它必须检查输入的 username 和 email 是否已被使用。代码编译得很好,但是当我输入任何email 或username 时,我得到一个error 01403,这表明我必须处理NO_DATA_FOUND exception。
你能告诉我如何在我的代码中做到这一点吗?我被卡住了,因为我有 2 个条件(查询)需要处理,但我不知道如何处理。任何帮助将不胜感激。
【问题讨论】: