Developer开发文章 Oracle 联系客服

发布时间 : 星期日 文章Developer开发文章 Oracle更新完毕开始阅读

--常用TEXT_IO Declare

out_file text_io.file_type; Begin

out_file:=text_io.fopen('prn','w'); --打开文件prn text_io.new_line(out_file,' '); text_io.fclose(out_file); End;

---文本输入输出 TEXT_IO

TEXT_IO.PACKAGE TEXT_IO.FCLOSE TEXT_IO.FILE_TYPE TEXT_IO.FOPEN TEXT_IO.IS_OPEN TEXT_IO.GET_LINE TEXT_IO.NEW_LINE TEXT_IO.PUT TEXT_IO.PUTF TEXT_IO.PUT_LINE Declare

Out_file Text_io.file_type; L Varchar2(100); L1 Varchar2(100); L2 Varchar2(100); Begin

Out_file :=text_io.fopen('c:\\ll\\login.txt','r'); If text_io.is_open(Out_file) then text_io.get_line(Out_file,L); text_io.get_line(Out_file,L1); text_io.get_line(Out_file,L2); Else Null; End if; End;

--新建一行 --关闭文件

text_io.put_line(out_file,' ') --写入一行

--定义

9 如何改变FORM(FMX模块)运行时的title?

1、 Developer/2000中FMX默认title为:Developer/2000 Forms Runtime for Windows 95 / NT 2、 在Form级触发器中添加触发WHEN-NEW-FORM-INSTANCE 3、 在此触发器中写如下代码:

4、 SET_WINDOW_PROPERTY(FORMS_MDI_WINDOW,TITLE,'您的提示');

10 FORM中,如何修改系统提示信息(默认英文)为中文?

1、 调入Form Builder,打开一个新的FORM

2、 在表格级新建一个ON_ERROR触发器 3、 在ON_ERROR里输入以下代码: begin if

error_code=40100 then message('已在第一 条记录!');

elsif error_code=40102 then message('您已在最后一条记录,请先输入处理此记录,然后再输入下一条记录!'); elsif error_code=40200 then message('此项仅用于查询参考,您无法更改此项!');

elsif error_code=40202 then message('此项必须输入! 产生错误原因:您未输入值,或您删去了原有值!'); elsif error_code=40203 then message('值必须输入完全! 产生错误原因:该项有定长要求!'); elsif error_code=40207 then message('您输入的值不在有效范围之内,请输入有效范围之内的值!'); elsif error_code=40401 then message('您没有修改或输入任何新的记录,无须保存!');

elsif error_code=40508 then message('编码不能相同,不能有相同编码的记录,编码必须唯一!'); elsif error_code=40509 then message('严重操作错误!,您可能输入了一个空的记录,无法保存记录!'); elsif error_code=41802 then message('您只能在输入新的记录时使用[复制记录]键,来复制上一条记录!'); else message(error_type||'_'||to_char(error_code)||':'||error_text); end if;

raise form_trigger_failure; end;

11 FORM中,怎样创建动态下拉列表List?

1、打开Form Builder

2、文件(F)→新建(N)→表格(F) 3、新建一个非数据块,取名为tool 4、鼠标右键→布局编辑器(E)

5、建一个列表项,名为xl(属于tool块) 6、新建一过程,内写如下的代码

PROCEDURE create_xl IS --动态显示学历过程

CURSOR A IS SELECT DISTINCT(xl) FROM t_xl; --建立a游标,从学历档案表取原始数据(有可能动态变化)

CNT NUMBER; --记录总数变量,用于生成列表的总项数 i NUMBER; --循环变量

TNAME t_xl.name%TYPE; --TNAME变量和t_xl表中name项具有相同的结构

BEGIN

CLEAR_LIST('tool.xl'); --清空列表tool.xl(tool块上的xl项) SELECT COUNT(DISTINCT(name)) INTO CNT FROM t_xl; --计算列表总数 OPEN A; --打开游标 FOR i IN 1..CNT LOOP --开始循环 FETCH A INTO TNAME; --取数 EXIT WHEN A%NOTFOUND; --退出条件

ADD_LIST_ELEMENT('tool.xl',i,TNAME,TNAME); --把查询出的值加入列表中(序号,实际值,显示值)

END LOOP; --结束循环 CLOSE A; --关闭游标 END;

7、在Form级触发器中添加触发WHEN-NEW-FORM-INSTANCE 在此触发器中写如下代码:create_xl;

使FORM程序一启动,就调用此过程,达到动态生成下拉列表List的效果。 附: --学历档案表

create table t_xl(name varchar2(6)); insert into t_xl values('小学'); insert into t_xl values('初中'); insert into t_xl values('职高'); insert into t_xl values('技校'); insert into t_xl values('高中'); insert into t_xl values('中专'); insert into t_xl values('大专'); insert into t_xl values('本科'); insert into t_xl values('研究生'); commit;

12 FORM中,如何引入图像,制作封面?

1、 打开Form Builder

2、 文件(F)→新建(N)→表格(F) 3、 鼠标右键→布局编辑器(E) 4、 文件(F)→导入(I)→图象(I) 5、 可调入作好的图像,以制作封面。

6、 所支持的图像格式有:TIF、JPG、BMP、TGA、PCX、PCT、GIF、CAL、RAS、OIF、PCD等

13 运行FORM时,如何使按钮变灰(即无效)?

set_item_property('按钮名称',ENABLED,PROPERTY_FALSE);

14 FORM中,设置应用特性(光标类型)

在Form级触发器中添加触发WHEN-NEW-FORM-INSTANCE

SET_APPLICATION_PROPERTY(CURSOR_STYLE,'CROSSHAIR'|'BUSY'|'HELP'|'DEFAULT'|'INSERTION');

15 运行FORM时,如何使窗口(runtime窗口、画布窗口)自动变成最大化、最小化?

1. 在Form级触发器中添加触发WHEN-NEW-FORM-INSTANCE 2. 在此触发器中写如下代码:

SET_WINDOW_PROPERTY(FORMS_MDI_WINDOW,WINDOW_STATE,MAXIMIZE);--最大化 SET_WINDOW_PROPERTY(FORMS_MDI_WINDOW,WINDOW_STATE,MINIMIZE);--最小化

16 FORM中,WINDOW标题的设置

1. 在Form级触发器中添加触发WHEN-NEW-FORM-INSTANCE

SET_WINDOW_PROPERTY(FORMS_MDI_WINDOW, title,'你要写的标题'); 或用以下方法

2. 对象导航器→窗口→WINDOW0(窗口的名字)→属性→标题→修改其属性

17 FORM中,Exception(例外)都有哪些,如何书写?

BEGIN Exception

《PL/SQL块》;

when no_data_found then

《响应命令》; 《响应命令》; 《响应命令》;

--被零除

--向唯一索引中插入重复数据

《响应命令》; 《响应命令》;

--非法游标操作

--数字的,数据转换,截字符串或强制性的错误

《响应命令》; 《响应命令》;

--发生其它任何错误

--选择一:什么也不做,就当错误没发生

--没有找到数据

when too_many_rows then --返回多行,隐式光标每次只能检索一行数据 when invalid_number then --字符向数字转换失败 when zero_divide then

when dup_val_on_index then when invalid_cursor then when value_error then when others then null;

raise form_trigger_failure; --选择二:挂起当前程序

END;

18 如何在FORM运行中,使定制菜单中的“窗口(W)”菜单项不显示?

对象导航器→窗口→WINDOW0(窗口的名字)→属性→模式→修改其属性 设置窗口属性:模式=是

19 FORM中,如何屏蔽默认的功能键?

1. 在Form级触发器中添加触发KEY-OTHERS 2. 在此触发器中写如下代码:

null;

3. 这样FORM程序运行后,大部分的功能键都被屏蔽(包括一些必需键,如:上箭头、下箭头、退出...), 要想让这些键再恢复功能,就为这些键各自编程:

按键 触发器 代码 说明

上箭头 KEY-DOWN DOWN; 上滚记录 下箭头 KEY-UP UP; 下滚记录 Page Up KEY-SCRUP SCROLL_UP; 上翻屏 Page Down KEY-SCRDOWN SCROLL_DOWN; 下翻屏 F1 KEY-HELP HELP; 显示帮助