• 网络学院
  • 新手学堂
  • 操作系统
  • 网络技术
  • 软件应用
  • 办公软件
  • 编程技术
  • 网站架设
  • 数据库类
  • 平面设计
  • 多媒体类
  • 游戏资讯
  • 教学论文
  • 认证考试
ORACLE
广告位
  站点:
  • 首 页
  • 最新软件
  • 最新文章
  • 国内软件
  • 国外软件
  • 汉化软件
  • 源码下载
  • 字体下载
ORACLE 数据库开发经验总结[2]
软件发布 ORACLE 数据库开发经验总结[2]
网络软件 系统工具 应用软件 联络聊天 图形图像 多媒体类 行业软件 游戏娱乐 编程开发 安全相关 教育教学 数码软件
热门软件: QQ 瑞星 pplive e话通 木马克星 千千静听 office2000 五笔字根 Photoshop 视频分割
返回首页 | 文章首页 | 认证考试 | Oracle认证 | Oracle指导 | ORACLE 数据库开发经验总结[2]

ORACLE 数据库开发经验总结[2]

 

添加时间: 2008-4-21 21:36:55  作者: Oracle指导  阅读次数:15   来源: http://www.d9soft.com

 

 

       

---- 二 .ORACLE DEVELOPER 2000 使用技巧:

---- ① 改变 FORM(FMX 模块 ) 运行时的 Runform4.5 的题头 :

---- DEVELOPER2000 中 FMX 默认题头为: Developer/2000 Forms Runtime for Windows 95 / NT 你可以改为自己定义的标题 ,

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

---- 2. 在此触发器中写如下代码:

set_window_property(FORMS_MDI_WINDOW,TITLE,'POINT

SYSTEM 欢迎使用 ');

---- ② 如何隐藏菜单中的 window 选项 :

---- 在创建自己的菜单时,最后选项总有 window 项,下面介绍如何去掉它 ,

---- 1. 创建一个 Menu

---- 2. 在 Menu 中建立一个 Item, 命名为 WINDOW 。

---- 3. 设置该 Item 属性如下 :

----

Menu Item Type:Magic

Command Type:Null

Magic Item:Window

Lable: 为空

---- ③ 怎样创建动态下拉列表 List

---- Developer 2000 中的列表是通过设置相关属性而完成数据项的列表设置的,但那只是静态的,有时你想让某项成为动态的列表,随输入数据的改变而改变,就需要动手去编个小程序。下面详细介绍怎样去做 :

---- 有块 EBOP_CABLE_ACCOUNT ,下有 SPECIFICATION 数据项,当一进入该模块时,就将 SPECIFICATION 项在数据库中存储的值动态显示出来,先在 Form4.5 中建立一个 PRCEDURE ,命名为 DYN_LIST:

PROCEDURE DYN_LIST IS

CURSOR C1 IS

SELECT DISTINCT(SPECIFICATION)

FROM EBOP_CABLE_ACCOUNT;

CNT NUMBER;

i NUMBER;

TNAME EBOP_CABLE_

ACCOUNT.SPECIFICATION%TYPE;

BEGIN

CLEAR_LIST('EBOP_CABLE_

ACCOUNT.SPECIFICATION');

SELECT COUNT(DISTINCT

(SPECIFICATION)) INTO CNT FROM EBOP

_CABLE_ACCOUNT;

open C1;

FOR i IN 1..CNT LOOP

FETCH C1 INTO TNAME;

EXIT WHEN C1%NOTFOUND

OR C1%NOTFOUND IS NULL;

ADD_LIST_ELEMENT

('EBOP_CABLE_ACCOUNT

.SPECIFICATION',i,TNAME,TNAME);

END LOOP;

DELETE_LIST_ELEMENT

('EBOP_CABLE_ACCOUNT.SPECIFICATION',CNT+1);

CLOSE C1;

END;

然后在 FORM 的 WHEN-NEW

-FORM-INSTANCE 触发子中加入一行:

DYN_LIST;

---- 这样一进入该 FMX ,就会动态刷新该列表。除此之外, SPECIFICATION 数据项改为列表项。

---- ④ 当显示多条记录且数据项特别多时,如何组织录入及显示界面 :

---- 如上图所示, PRN 代码及设备代码在画布 1(CONTENT 型 ) 上,其它数据项在画布 2(STACK 型 ) 上,所有数据项为一个表的列或一个块的数据项。在拉动水平滚动条时或用 TAB 或敲回车键时,将看到全部数据项。这种排布方法适用于数据项特别多又想显示多条记录时用。主要制作顺序为:先建立两个画布,画布 1(CONTENT 型 ) ,画布 2(STACK 型 ) ,然后建立块,选画布时用画布 1 ,这样所有项都显示在画布 1 上,然后选中除 PRN 代码及设备代码之外的所有数据项,选 TOOLS 菜单下的 PROPERTIES 选项,将这些数据项的 CANVAS 属性选为画布 2(STACK 型 ) ,然后调整整体位置就可以了。

---- ⑤ 如何在 FORM 的受限触发子中提交保存数据

---- 在 FORM 中很多触发子是不能用 COMMIT WORK 语句的,当你在该触发子中使用了 UPDATE , DELETE 等操作并想立即存盘时,就需要 COMMIT WORK 语句了。首先在服务器端建立 DB_SQL_COMMIT 这个过程 ( 采用 ORACLE7.3 数据库 ) ,


PROCEDURE DB_SQL_COMMIT IS

source_cursor integer;

ignore integer;

V7 NUMBER :=2;

BEGIN

source_cursor:=dbms_sql.open_cursor;

dbms_sql.parse(source_cursor,'COMMIT WORK',V7);

ignore:=dbms_sql.execute(source_cursor);

DBMS_SQL.CLOSE_CURSOR(source_cursor);

END;

---- 然后在 FORM 中该触发子中调用过程 DB_SQL_COMMIT; 就可以了,当然你可以根据自己需要将该过程加入参数,这样通过参数可以得到执行 DML 语句的权限。

---- ⑥ 如何在 FORM 中实现某数据项自动按记录序号加一操作

---- 设块名为 VO, 要操作的数据项为 VO_ID, 在该块中建立块级触发子 WHEN-CREATE- RECORD ,加入如下代码:

:VO_ID:=:System.Trigger_Record;

---- 这样每当生成新记录时 VO_ID 就会自动加一了。

---- ⑦ 如何在一个 FORM 中调用另一个 FORM ,或在一个块中调用另一个块时显示特定的记录有时用户会要求在调用另一个 FORM 时,只显示相关的记录,举例如下,在一个 FORM 的块中有一个按钮,在按钮触发子中加入如下代码:

DECLARE

PM

PARAMLIST;

BEGIN

PM:=GET_PARAMETER_LIST('PM');

IF NOT ID_NULL(PM) THEN

DESTROY_PARAMETER_LIST('PM');

END IF;

PM:=CREATE_PARAMETER_LIST('PM');

......................

ADD_PARAMETER(PM,'THE_WHERE',

TEXT_PARAMETER,'EM_NAME=''EM4''

AND EM_PROJECT_NAME='' 支架预制 ''');

OPEN_FORM('PAYMENT',ACTIVATE,SESSION,PM);

END ;

---- 其中 EM_NAME , EM_PROJECT_NAME 为本 FORM 某块的数据项, PAYMENT 为要调用的 FORM 模块。这样通过传递参数列表就可以得到想要的结果。在 FORM PAYMENT.FMB 中,建立一参数 THE_WHERE , CHAR 型,长 1000 ,然后在 PAYMENT.FMB 中建立 FORM 级触发子 WHEN-NEW-FORM-INSTANCE ,在该触发子中加入以下语句:

IF :PARAMETER.THE_WHERE IS NOT NULL THEN

SET_BLOCK_PROPERTY('PAYMENT',

DEFAULT_WHERE,:PARAMETER.THE_WHERE);

END IF;

---- 其中 PAYMENT 为要显示的块,这样通过参数传递就得到想要的某些特定条件的数据了。

---- ⑧ 在 FORM 中当有主从块时,连续输入记录如何避免被不断的提示保存:

---- 每输入一条主记录和若干条该主记录的从记录后,此时再导航到主块输下一条记录, FORM 就会提示你是否要保存记录,而你并不希望 FORM 提示,让它自动保存,此时你可以到 Program Units 中找到过程 PROCEDURE Clear_All_Master_Details ,然后在这个过程中找到语句

Clear_Block(ASK_COMMIT);

---- 将其改为 Clear_Block(DO_COMMIT); 就可以了。

---- ⑨ 在 Report 开始时选择排序项 :

---- 在报表开始的 Parameter Form 中选择报表按哪个数据项排序,

---- 1. 先在 USER PARAMETER 中创建 SORT 参数,为字符型,长 20 。

---- 2. 初始值选'责任方' , 然后将这四个值输入到 DATA SELECTION 中,形成列表。

---- 3. 然后处理 QUERY 中的 SQL 语句 :

select CHARGER,FCO_NO,EM_NAME,FCO

_NO,DESCRIPTION, FCR_POINT

from FCR_MAIN

ORDER BY DECODE(:SORT,' 责任方 ',CHARGER,'FCO 号 ',

FCO_NO,'FCR 号 ',FCR_NO,'FCR 号 ',EM_NAME)

---- ⑩ 在 Developer 2000 中如何读写操作系统文件

---- 在用 Developer 2000 的开发工具

 

发应用程序时,经常碰到需要读写外部文件的问题,可以用 ORACLE 带的包 TEXT_IO 来完成这项需求。例如 :

DECLARE

IN_FILE TEXT_IO.FILE_TYPE;

OUT_FILE TEXT_IO.FILE_TYPE;

LINE_BUFER VARCHAR2(80);

/* 若不用 IN_FILE, 可以将各字段联接在一起赋值给此变量 */

BEGIN

IN_file:=TEXT_IO.FOPEN

(‘C:TEMPTEST1.TXT','r');

OUT_file:=TEXT_IO.FOPEN

(‘C:TEMPTEST2.TXT','w+');

LOOP

TEXT_IO.GET_LINE(IN_FILE,LINE_BUFER);

TEXT_IO.PUT(LINE_BUFER);

TEXT_IO.NEW_LINE;

TEXT_IO.PUT_LINE(OUT_FILE,LINE_BUFER);

END LOOP;

EXCEPTION

WHEN no_data_found THEN

TEXT_IO.PUT_LINE(‘CLOSING THE FILE ,PLEASE WAITING....');

TEXT_IO.FCLOSE(IN_FILE);

TEXT_IO.FCLOSE(OUT_FILE);

END;

 

 

 

 

上下文章:

 

上一篇文章: ORACLE 数据库开发经验总结[3] 下一篇文章: 如何在复杂环境下监控 ORACLE 数据库性能

相关文章:

  • 在ORACLE的存储过程中如何做简单的动态查询
  • Oracle下调数据库许可价格以适应多芯CPU
  • Oracle全球客户支持副总裁汤姆·舒尔滋演讲
  • Oracle中国前员工述说公司高层内部纷争史
  • Oracle发布免费数据库管理工具Raptor

相关软件:

  • 子墨数据库同步工具 V1.0.0.0
  • C/S、B/S两用开发平台 V6.1.2
  • DVD/CD光盘刻录SDK开发包 V4.2
  • 腾讯QQ IP数据库 V0605 纯真版
  • 腾讯QQ IP数据库 V0420 纯真版(繁体版)
  • 火柴峰动画(1760数据库)

 

 

快速导航

  • 网络学院
  • 精品汇聚
  • 字体下载
  • 教程下载
  • ASP源码
  • PHP源码
  • Net源码
  • JSP 源码

Oracle认证分类导航

  • Oracle动态
  • Oracle指导
  • Oracle题库

本类经典文章推荐

  • Oracle中关于逻辑备份与恢复
  • Oracle开发人员JAVA存储过程
  • 为数据库的表自动生成行号
  • Oracle中的OOP概念
  • 用java从oracle取数
  • 冷备份移植到另一台Solaris机器上
  • 如何将excel数据导入oracle中
  • Oracle10.2g安装记录
  • 数据库监控工具ForOraclev1.2
  • oracle双机群集系统

Oracle指导阅读排行

  • Oracle系统表查询
  • 实例:Oracle导出EXCEL文件
  • Oracle企业管理器(OEM 2.1)使用...
  • 实例:Oracle导出EXCEL文件
  • Tomcat+SQLServer连接池配置
  • 服务器和客户机是怎样连接的
  • 入门基础:连接常见错误及解决方法
  • ORACLE数据库简介
  • 如何将excel数据导入oracle中
  • 如何取出某一用户的密码 再原样改...

Oracle认证阅读总排行

  • Oracle系统表查询
  • 实例:Oracle导出EXCEL文件
  • Oracle企业管理器(OEM 2.1)使用...
  • 在ORACLE的存储过程中如何做简单的...
  • 实例:Oracle导出EXCEL文件
  • AIX下自动启动Oracle数据库与监听...
  • Tomcat+SQLServer连接池配置
  • 服务器和客户机是怎样连接的
  • 入门基础:连接常见错误及解决方法
  • ORACLE数据库简介

广告位置

字母检索 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 回到顶部

关于我们 | 版权声明 | 免责条款 | 广告联系 | 软件发布 | 下载帮助 | 下载排行 | 网站地图 | 特别鸣谢 | 友情连接

copyright; 2005-2008 D9soft.com 第九软件网 版权所有