DEVELOPER/2000使用经验7条
OracleDeveloper/2000是ORACLE第二代的Client/Sever应用开发工具,它提供了一种面向对象的开发环境,本人曾经使用ORACLEDEVELOPER/2000完成了的软件编程,在编程过程中总结出了一些小小的经验,把它们写出来与大家分享,并希望能对初学者有所帮助。
1.如何屏蔽系统提示信息?
在运行一个FORM时往往会弹出一些报警器,但提示的并非出错信息,屏蔽这些报警器的方法是将系统变量:SYSTEM.MESSAGE_LEVEL的值设置为’25’。
2.在编写PL/SQL代码中使用SELECT语句时如何避免例外发生?
在使用SELECT语句为某变量赋值时,往往会出?quot;NO_DATA_FOUND"和"TOO_MANY_ROWS"等异常情况,使用SELECT语句分两种情况:第一种情况,判断某表中是否有符合某一条件的记录,这时使用聚组函数MAX就可以避免以上两个例外的发生。其格式:SELECTMAX(列1),MAX(列2)......INTO变量1,变量2......FROM基表WHERE条件,当没有符合条件的数据时,该语句返回空,即变量1,变量2......的值均为空,而不会出现"NO_DATA_FOUND"例外,另外使用聚组函数MAX的同时也就避免了"TOO_MANY_ROWS"例外。第二种情况,SELECT语句中含聚组函数SUM,这时如果使用了GROUPBY和HAVING子句,当没有符合条件的记录时将发生"NO_DATA_FOUND"例外,此时避免例外的办法是:去掉GROUPBY和HAVING子句,将HAVING子句的条件加到WHERE子句中。这样在使用SELECT语句时就不必再额外增加一段处理例外的代码,从而简化的代码的编写。
3.当使用主从块时,如何使从块自动提交?
在FORM设计时有时需要用到主从块,在主从块录入时每当鼠标从从块移到主块准备录入一条新记录时,总是弹出一报警器,问你是否保存数据,从而影响录入速度,将该报警器去掉的方法是:在过程"CLEAR_ALL_MASTER_DETAILS"中的"CLEAR_BLOCK(ASK_COMMIT)"即清除从块时是否提交改为"CLEAR_BLOCK(DO_COMMIT)",这样从块录完数据再导航到主块录入新记录时,系统将自动提交数据,而不再出现上述提示。
4.如何减少FORM所占磁盘空间?
(1)对于块中只用于查询并且无格式限制的项,设置为显示项。
(2)保存FORM时先断开与数据库的链接,然后在保存。以上两种方法均可减小FORM的大小,尤其是第二种方法更为明显。当硬盘空间较小,或将程序备份到软盘上时,这样作是很有意义的。
5.如何使定制菜单的主菜单中WINDOWS项不显示?
在MAINMENU中建立一个为WINDOWS属性的菜单项,这样主菜单中WINDOWS项就不再显示。
6.如何使不同布局的报表显示在同一页上?
复杂的报表往往是由几部分组成,需建立多个查询,而每个查询都对应着一个布局,怎样才能使具有不同布局的报表数据显示在同一页上呢?其方法如下:第一步,首先根据实际报表格式建立第一个查询组的布局,称为布局1,然后依次再建立起其他查询组的布局,分别称为布局2,布局3......。注意:每个布局最外围的单选框不要去掉。第二步,分别为布局2,布局3......建立一个到布局1的定位(ANCHOR),即选中工具栏中的ANCHOR,鼠标单击布局2的单选框,然后按住鼠标左键并拖动鼠标到布局1的单选框上(可以选择上边?下边?左边或右边),松开鼠标按钮,按此方法再建立布局3,布局4......到布局1的定位。建立定位的作用是使布局2,布局3......相对与布局1的位置保持不变,这样就使具有不同布局的报表数据显示并打印在同一物理页上。
7.怎样较快的生成FMX文件?
用RUN命令,一次只能生成一个.FMX文件,如果想生成一批.FMX文件,这样做即麻烦又费时,一个生成.FMX较快的办法是:先打开要运行的.FMB文件,如何按住SHIFT键将这些文件全部选中,在从系统菜单"文件"中选择"ADMINISTRATION"中"GENERATE"即可。