请教: 如何实现在Form中一次删除多笔记录

[复制链接]
查看11 | 回复9 | 2007-10-20 08:38:44 | 显示全部楼层 |阅读模式
请教各位,要实现点一次delete按钮,就删除 check box 为Y
的3条记录,应该在on-delete trigger中如何做?请各位指点...先谢过各位。
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
帮你顶 我也想知道
我想应该在trigger 里边 肯定先要把 cheakbox 选中 然后才能作del
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
我觉得可以在DELETEWHEN-BUTTON-BRESS 里把为Y的变为NULL 再COMMIT就可以了
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
最初由 jsj2002 发布
[B]我觉得可以在DELETEWHEN-BUTTON-BRESS 里把为Y的变为NULL 再COMMIT就可以了 [/B]

兄台是说加一个delete 的button 吗?那工具栏上的怎么处理呢?
我是想点击一次按钮在form上清除,并且在database中也删除掉,就象点3次工具栏上的按钮再save后的效果一样.
请斑竹和各位指点迷津..谢谢~
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
这个问题很容易的, 使用循环就可以解决了, 只是这种做法当资料比较多的时候会有点慢
begin
go_block('emp');
first_record;
loop
if :check_box = 'Y then
delete from emp where empno = :emp.empno;
exit when :system.last_record := 'TRUE';
next_record;
end if;
do_key('commit_form');
end;
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
我也只会用循环,不知有没有什么更好的方法?
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
最初由 Edisonlsj 发布
[B]这个问题很容易的, 使用循环就可以解决了, 只是这种做法当资料比较多的时候会有点慢
begin
go_block('emp');
first_record;
loop
if :check_box = 'Y then
delete from emp where empno = :emp.empno;
exit when :system.last_record := 'TRUE';
next_record;
end if;
do_key('commit_form');
end; [/B]

谢谢edisonlsj ,但是我在测试的时候table 总是被lock..这是为啥呀?
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
最初由 Jovi li 发布
[B]
谢谢edisonlsj ,但是我在测试的时候table 总是被lock..这是为啥呀? [/B]

有报错还是其它问题?
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
出现了exception , 加上
exception
whentoo_many_rows then
null;
就ok了。
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
1. storeprocedure sp里定义一个TYPE VARCHAR2_TABLE IS TABLE OF VARCHAR2(30) INDEX BY BINARY_INTEGER ;

2. form里的checkbox的trigger里, 定义一个变量row_ids sp.VARCHAR2_TABLE
3 .每次变Y时, 记录row_ids(record_number) := rowidtochar(rowid);
每次变N时, 记录row_ids(record_number).delete;
4. sp里定义一个delete_rows(p_row_ids as VARCHAR2_TABLE );
5. form的delete button里, 调用sp.delete_rows(row_ids);
6. delete 后再query 一下, 刷新form.
按照oracle ebs的standard, 还可以使用shift+mouse click 的方法来多选, 而不用checkbox.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行