在Oracle窗体生成器中编辑按钮WHEN-button-IS-PRESSED



我将创建一个编辑按钮,用于编辑Oracle forms Builder中名为MEMBERS的表单的内容。我已经做了ADD按钮,这是代码(该按钮位于MEMBERS_ADD表单上):

注:表的名称也是MEMBER,这些是成员表的列

-member_id  
-firstname  
-lastname    
-gender  
-address    
-contact   
-type   
-yearlevel  
-status   

begin
commit_form;
first_record;
LOOP
INSERT INTO MEMBERS
SELECT * FROM MEMBERS WHERE MEMBER_ID = MEMBER_ID;
EXIT WHEN :SYSTEM.LAST_RECORD='TRUE';
    NEXT_RECORD;
    END LOOP;
FIRST_RECORD;
 
COMMIT;
     MESSAGE('RECORD SAVED!');
     MESSAGE(' ',no_acknowledge);
end;

这是我用于编辑按钮的代码:

DECLARE
  pl PARAMLIST:=GET_PARAMETER_LIST('PL_EDIT_MEM');
BEGIN
  IF NOT ID_NULL(pl) THEN
    DESTROY_PARAMETER_LIST(pl);
  END IF;
  pl:=CREATE_PARAMETER_LIST('PL_EDIT_MEM');
  ADD_PARAMETER(pl, 'P_MODE', TEXT_PARAMETER, 'EDIT');
  ADD_PARAMETER(pl, 'P_MEMBER_ID', TEXT_PARAMETER, :MEMBERS.MEMBER_ID);
  CALL_FORM('MEMBER',NO_HIDE,DO_REPLACE,NO_QUERY_ONLY,pl);
END;

代码给我一个错误:FRM-40010:无法从MEMBER 读取

您的编辑按钮准备一个参数列表,填充参数,然后执行call_form打开一个名为"member"的表单。

您收到FRM-40010错误,因为表单服务器找不到成员表单可执行文件(member.fmx)。我希望您已经编译了表单并创建了fmx文件。如果没有,请按Ctrl+Shift+K编译所有文件,并按Ctrl>+T


就第一段代码而言,循环没有任何意义,因为它只是进行一个自联接(参见位:WHERE MEMBER_ID = MEMBER_ID-我希望这是一个拼写错误?),然后插入到它从中选择的同一个表中

最新更新