【文档说明】数据库实用技术(基于Oracle)第10章课件.ppt,共(69)页,670.500 KB,由小橙橙上传
转载请保留链接:https://www.ichengzhen.cn/view-92456.html
以下为本文档部分文字说明:
1数据库原理与应用第10章Oracle综合实例2学习目标●掌握数据库设计的基本步骤和方法。●掌握利用Java和PowerBuilder连接Oracle数据库的方法。310.1系统功能分析10.2系统数据库设计10.3连接Oracle数
据库10.4小结第10章Oracle综合实例410.1系统功能分析本章以进销存系统为例来介绍数据库设计的过程,系统功能分析是在汇总系统开发的总体任务的基础上完成。本系统中的进销存管理系统需要完成商品管理
、仓库管理、客户管理、供应商管理、库存管理、商品销售管理、商品供应管理等多个功能,满足企业高效率的需求,系统功能模块如图10-1所示。进销存系统商品管理模块客户管理模块供应商管理模块仓库管理模块商品销售模块商品供应模块商品库存模块510.2系统数据库
设计10.1系统功能分析10.3连接Oracle数据库10.4小结第10章Oracle综合实例610.2.1需求分析10.2.2概念结构设计10.2.3逻辑结构设计10.2.4在Oracle中创建表10.2系统数据库设计10.2.5在Oracle中创建
索引10.2.6在Oracle中创建视图10.2.7在Oracle中创建序列10.2.9在Oracle中创建存储过程或存储函数10.2.8在Oracle中创建触发器710.2.1需求分析系统开发的目标是实
现企业进销存管理的系统化、规划化和自动化,基本要求如下:(1)客户管理:对整个销售过程进行管理,对销售对象进行统计。(2)供应商管理:对整个供应过程进行管理,对供应对象进行统计。(3)仓库管理:对仓库信息进行管理。(4)商品管理:对系统销售/供应过程中的商品进
行管理。(5)进/退货管理:对整个供应过程中发生的进货/退货进行跟踪统计。(6)售/退货管理:对整个销售过程中发生的进货/退货进行跟踪统计。(7)库存管理:对商品入/出仓库进行跟踪统计。810.
2.1需求分析通过对企业进销存管理的内容和数据流程分析,系统的数据结构如表10-1所示。数据结构名含义组成客户信息(Customer)对销售客户进行记录、统计客户编码、客户名称、地址、电话、邮编供应商信息(Supplier)对供应商进行记录、统计供应商编码、供应商名称、地址、电话
、邮编、联系人仓库信息(StoreHouse)对仓库进行记录、统计仓库编码、地址、电话、成立时间商品信息(ProductClass)对商品进行记录、统计商品编号、商品名称、单价、规格910.2.1需求分析系统的数据项如表10-2~10-5所示。数据项名含义类型长度约束Suppl
ier_ID供应商编号INT惟一标识Supplier_Name供应商名称VARCHAR2250非空Address地址VARCHAR2250非空Phone电话VARCHAR225PostalCode邮编VARCH
AR210ConstactPerson联系人VARCHAR2201010.2.1需求分析数据项名含义类型长度约束Customer_ID客户编号INT惟一标识Customer_Name客户名称VARCHAR2250非空Address地
址VARCHAR2250非空Phone电话VARCHAR225PostalCode邮编VARCHAR2101110.2.1需求分析数据项名含义类型长度约束StoreHouse_ID仓库编号INT惟一标识Address地
址VARCHAR2250非空Phone电话VARCHAR225CreateDate成立时间DATE1210.2.1需求分析数据项名含义类型长度小数位约束ProductClass_ID商品编号INT惟一
标识ProductClass_Name商品名称VARCHAR230非空ProductSpec_ID商品规格VARCHAR230非空Price单价NUMBER52非空1310.2.1需求分析在实际应用中,系统中存在着各种联系:(1)一个
仓库可以存储多种商品,一种商品只能存储在一个仓库,而且商品入库或出库时记录是入库还是出库,还记录时间、数量、经手人;(2)一个供应商可以供应多种商品,一种商品可以由多个供应商供应,而且供应商供应商品时记录是进货还
是退货,还记录时间、变化数量、金额、经手人;(3)一个客户可以购买多种商品,一种商品可以由多个客户购买,而且客户购买或退商品时记录是卖货还是退货,还记录时间、变化数量、金额、经手人。因此,仓库与商品之间是一对多的联系,客户与商品之间是多对多的联系,供应商与商
品之间是多对多的联系。由于在一个商品同一天可能多次存入同一仓库,因此增加入/出库编号以标识每一次库存操作;同理,由于一个客户同一天可能购买多次同一商品,因此增加售/退编号以标识每一次销售操作;一个供应商同一天可能多次供应同一商品,因此增加进/退编号以标识每一次供应操作。1410.2
.2概念结构设计10.2.1需求分析10.2.3逻辑结构设计10.2.4在Oracle中创建表10.2系统数据库设计10.2.5在Oracle中创建索引10.2.6在Oracle中创建视图10.2.7在Oracle中创建序列10.2.9在Oracle中创建存储过程或存储函数10.2.8在Orac
le中创建触发器1510.2.2概念结构设计根据需求分析,进销存管理系统的E-R图如图10-2所示。1610.2.3逻辑结构设计10.2.2概念结构设计10.2.1需求分析10.2.4在Oracle中创建表10.2系统数据库设计10.2.5在O
racle中创建索引10.2.6在Oracle中创建视图10.2.7在Oracle中创建序列10.2.9在Oracle中创建存储过程或存储函数10.2.8在Oracle中创建触发器1710.2.3逻辑结构设计根据概念模型向逻辑模型转换原则,进销存管理系
统的逻辑结构为:(1)一个实体转换成一个关系,所以应有:供应商表(供应商编号、供应商名称、地址、电话、邮编、联系人)。客户表(客户编号、客户名称、地址、电话、邮编)。仓库表(仓库编号、地址、电话、成立时间)。
商品表(商品编号、商品名称、单价、规格)。(2)一对多的联系,可以将一方的主键传到多方,成为多方的非主属性,还可以形成新的关系,双方的主键和联系本身的属性作为新关系的属性。1810.2.3逻辑结构设计由于仓库与商品之间是一对多的联系,而
且联系本身有属性,所以可以形成新关系:商品库存表(商品编号、仓库编号、入/出编号、入/出标志、时间、数量、经手人)由于在同一商品同一天可能多次存入同一仓库,因此商品编号、仓库编号和时间三者联合也很难惟一标识一次出入库行为,因此将入/出库编号作为
商品库存表的主键,修改后的商品库存表为:商品库存表(商品编号、仓库编号、入/出编号、入/出标志、时间、数量、经手人)(3)多对多的联系形成一个新的关系,多方的主键和联系本身的属性作为新关系的属性,多方的主键联合作主键。由于商品和供应商、客户与商品之间是多对多
的联系,所以形成新的关系:商品销售表(商品编号、客户编号、售/退编号、售/退标志、时间、变化数量、金额、经手人)1910.2.3逻辑结构设计商品供应表(商品编号、供应商编号、进/退编号、进/退标志、时间、变化数量、金额、经手人)
由于同一客户同一天可能购买多次同一商品,因此商品编号、客户编号和时间三者联合也很难惟一标识一次销售行为,而售/退编号是不可以重复的有规律的编号,因此将售/退编号作为商品销售表的主键,修改后的商品销售表为:商品销售表(商品编号、客户编号、售/退
编号、售/退标志、时间、变化数量、金额、经手人)由于同一供应商同一天可能多次供应同一商品,因此商品编号、供应商编号和时间三者联合也很难惟一标识一次供应行为,而进/退编号是不可以重复的有规律的编号,因此将进/退编号作为商品供应表的主键,修改
后的商品供应表为:商品供应表(商品编号、供应商编号、进/退编号、进/退标志、时间、变化数量、金额、经手人)2010.2.4在Oracle中创建表10.2.2概念结构设计10.2.3逻辑结构设计10.2.
1需求分析10.2系统数据库设计10.2.5在Oracle中创建索引10.2.6在Oracle中创建视图10.2.7在Oracle中创建序列10.2.9在Oracle中创建存储过程或存储函数10.2.8在Oracle中创
建触发器2110.2.4在Oracle数据库中创建表CREATETABLESupplier(Supplier_IDINTPRIMARYKEY,Supplier_NameVARCHAR2(250)NOTNULL,AddressVARCHAR2(250)NOTNULL,
PhoneVARCHAR2(25),PostalCodeVARCHAR2(10),ConstactPersonVARCHAR2(20));2210.2.4在Oracle数据库中创建表CREATETABLECustomer(Customer_IDINTPRIMARYKEY,Custom
er_NameVARCHAR2(250)NOTNULL,AddressVARCHAR2(250)NOTNULL,PhoneVARCHAR2(25),PostalCodeVARCHAR2(10));2310.2.4在Oracle数据库中创建表CRE
ATETABLEStoreHouse(StoreHouse_IDINTPRIMARYKEY,AddressVARCHAR2(250)NOTNULL,PhoneVARCHAR2(25),CreateDateDATE);24
10.2.4在Oracle数据库中创建表CREATETABLEProductClass(ProductClass_IDINTPRIMARYKEY,ProductClass_NameVARCHA
R2(30)NOTNULL,ProductSpec_IDVARCHAR2(30)NOTNULL,PriceNUMBER(5,2)NOTNULL);2510.2.4在Oracle数据库中创建表CREATETABLEP_C(ProductClass_IDINTREFERE
NCESProductClass(ProductClass_ID),Customer_IDINTREFERENCESCustomer(Customer_ID),PC_IDINTPRIMARYKEY,PC_markINT,PC_timeDATE,PC
_amountNUMBER(6,2),PC_sumNUMBER(10,2),PC_workerCHAR(10));2610.2.4在Oracle数据库中创建表为了实时统计每种商品销售情况,增加商品销售统计表。CREATETABLEC_ALL/*商品销售统计表*/(Pro
ductClass_IDINTREFERENCESProductClass(ProductClass_ID),CA_amountNUMBER(6,2),CA_sumNUMBER(10,2),PRIMARYKEY(Pr
oductClass_ID));2710.2.4在Oracle数据库中创建表CREATETABLEP_S(ProductClass_IDINTREFERENCESProductClass(ProductClass_ID),S
upplier_IDINTREFERENCESSupplier(Supplier_ID),PS_IDINTPRIMARYKEY,PS_markINT,PS_timeDATE,PS_amountNUM
BER(6,2),PS_sumNUMBER(10,2),PC_workerCHAR(10));2810.2.4在Oracle数据库中创建表为了实时统计每种商品供应情况,增加商品供应统计表。CREATETABLES_ALL
/*商品供应统计表*/(ProductClass_IDINTREFERENCESProductClass(ProductClass_ID),Supplier_IDINTREFERENCESSupplier(Supplier_ID),SA_amountNUMBER(6,2),S
A_sumNUMBER(10,2),PRIMARYKEY(Supplier_ID));2910.2.4在Oracle数据库中创建表CREATETABLEP_H(ProductClass_IDINTREFERENCESProductClass(Produc
tClass_ID),StoreHouse_IDINTREFERENCESStoreHouse(StoreHouse_ID),PH_IDINTPRIMARYKEY,PH_markINT,PH_timeDATE,PH_amountNUMBER(6,2),PC_wor
kerCHAR(10));3010.2.4在Oracle数据库中创建表为了实时统计每种商品库存情况,增加商品库存统计表。CREATETABLEH_ALL/*商品库存统计表*/(ProductClass_ID
INTREFERENCESProductClass(ProductClass_ID),StoreHouse_IDINTREFERENCESStoreHouse(StoreHouse_ID),HA_amountNUMBER(6,2),PRIMARYKEY(StoreHouse_ID)
);为了系统功能更加完善,可以增加其他统计表等,请读者自行分析。3110.2.5在Oracle中创建索引10.2.2概念结构设计10.2.3逻辑结构设计10.2.4在Oracle中创建表10.2系统数据库设计10.2.1需求分析10.2.6在Oracle中创建视图10.2.7在
Oracle中创建序列10.2.9在Oracle中创建存储过程或存储函数10.2.8在Oracle中创建触发器3210.2.5在Oracle数据库中创建索引在进销存系统中经常需要查询数据,因此可以根据查询要求在表中创建索
引。例如,在商品名称上创建索引。CREATEINDEXp_name_indexONProductCLass(ProductClass_name);为了系统功能更加完善,可以增加其他索引,请读者自行分析。3310.2.6在Oracle中创建视图1
0.2.2概念结构设计10.2.3逻辑结构设计10.2.4在Oracle中创建表10.2系统数据库设计10.2.5在Oracle中创建索引10.2.1需求分析10.2.7在Oracle中创建序列10.2.9在Oracle中创建存储过程或存储函数10.2.8在Oracle中创建触发器
3410.2.6在Oracle数据库中创建视图为了提高系统的隐蔽性和查询方便可以创建一些视图。CREATEVIEWP_S_VIEW/*商品供应视图*/ASSELECTSupplier..Supplier_ID,Supplier
_Name,ProductClass.ProductClass_ID,ProductClass_NameFROMSupplier,ProductClass,P_SWHEREProductClass.P
roductClass_ID=P_S.ProductClass_IDANDSupplier.Supplier_ID=P_S.Supplier_IDWITHREADONLY;为了系统功能更加完善,可以增加其他视图
,请读者自行分析。3510.2.7在Oracle中创建序列10.2.2概念结构设计10.2.3逻辑结构设计10.2.4在Oracle中创建表10.2系统数据库设计10.2.5在Oracle中创建索引10.2.6在Oracle中创建视图10.2.1需求分析10.2.9在Oracle中
创建存储过程或存储函数10.2.8在Oracle中创建触发器3610.2.7在Oracle数据库中创建序列在进销存系统中商品销售过程中售/退编号是不可以重复的有规律的编号,且作为主键,其值可以用序列来填充。CREATESEQ
UENCEP_C_SQEINCREMENTBY1STARTWITH1MAXVALUE100000MINVALUE1CYCLECACHE20ORDER;同理,在商品供应过程中进/退编号是不可以重复的有规律的编号,且
作为主键,其值也可以用序列来填充。为了系统功能更加完善,可以增加其他序列,请读者自行分析。3710.2.8在Oracle中创建触发器10.2.2概念结构设计10.2.3逻辑结构设计10.2.4在Oracle中创建表10.2系统数据库设计10.2.5在Ora
cle中创建索引10.2.6在Oracle中创建视图10.2.7在Oracle中创建序列10.2.9在Oracle中创建存储过程或存储函数10.2.1需求分析3810.2.8在Oracle数据库中创建触发器在进销存系统中有时某种商品的库存量太少会影响销售活动,所以当某商品的
库存量太少时系统应自动告警,这时需要用到触发器。CREATETRIGGERP_H_TRIGGER/******为商品库存统计表创建缺货触发器,数量小于1000时触发********/AFTERDELETEORUPDATEONH_ALLFOREACHROWWHEN(
HA_amount<1000)BEGINDBMS_OUTPUT.PUT_LINE('编号为:'||:NEW.ProductClass_ID||'的商品在'||:NEW.StoreHouse_ID||'号仓库库存总量小于1000');
END;为了系统功能更加完善,可以增加其他触发器,请读者自行分析。3910.2.9在Oracle中创建存储过程或存储函数10.2.2概念结构设计10.2.3逻辑结构设计10.2.4在Oracle中创建表10.2
系统数据库设计10.2.5在Oracle中创建索引10.2.6在Oracle中创建视图10.2.7在Oracle中创建序列10.2.1需求分析10.2.8在Oracle中创建触发器4010.2.9在Oracle数据库中创
建存储过程或函数在进销存系统中有时需要统计某供应商供应的商品名称列表,这时可以使用存储过程。CREATEPROCEDUREP_S_PRO(s1Supplier.Supplier_ID%TYPE)ASp1ProductClass.Pro
ductClass_ID%TYPE;p2ProductClass.ProductClass_Name%TYPE;Cursorc1ISSELECTProductClass_IDFROMP_SWHERESupplier_ID=s1
;BEGINOPENc1;LOOPFETCHc1intop1;EXITWHENc1%NOTFOUND;4110.2.9在Oracle数据库中创建存储过程或函数SELECTProductClass_Nameintop2FROMProductClassWHEREProduct
Class_ID=p1;DBMS_OUTPUT.PUT_LINE(p2);ENDLOOP;CLOSEc1;END;为了系统功能更加完善,可以增加其他存储过程或函数,请读者自行分析。4210.3连接Oracle数据库10.2系统数据库设计10.1系
统功能分析10.4小结第10章Oracle综合实例4310.3.1利用Java连接Oracle10.3连接Oracle数据库10.3.2利用PowerbBilder连接Oracle4410.3.1Java连接OracleJava利用J
DBC(JavaDatabaseConnectivity,Java数据库连接)连接Oracle数据库。假设使用Oracle安装过程中创建的Oracle数据库“DBSEPI”。JDBC是一种用于执行SQL语句的JavaAPI,
可以为多种关系数据库提供统一的访问接口。JDBC由一组用Java语言编写的类与接口组成,通过调用这些类和接口所提供的方法,用户能够以一致的方式连接多种不同的数据库系统(如Access、Server2000、Oracle、Sybase等),进
而使用标准的SQL语言来存取数据库中的数据,而不必再为每一种数据库系统编写不同的Java程序代主键。JDBC提供的主要功能如下:(1)同一个数据库建立连接;(2)向数据库发送SQL语句;(3)处理数据库返回的结果。451.设置数据源打开操作系统的控制面板,双击“数据源(ODBC)”图
标,选择“用户DSN”选项卡,如图10-3所示,画面中显示了已有的数据源名称。461.设置数据源单击“添加”按钮,出现建立新数据来源对话框,如图10-4所示。471.设置数据源选中“OracleinOraHome92”作为新数据
源的驱动程序,单击“完成”按钮,出现OracleODBC驱动器配置窗口,如图10-5所示。481.设置数据源在“DataSourceName”编辑框输入数据源的名称,假设为“dbspei”,在“TNSSer
verName”编辑框输入Oracle数据库的名称,假设使用Oracle安装过程中创建的数据库“dbsepi”,在“User”编辑框输入用户名“usepi”,单击“TestConnection”按钮,出现OracleODBC驱动连接窗口,如图
10-6所示。491.设置数据源在“ServerName”编辑框显示数据库的名称“dbspei”,在“UseName”编辑框显示用户名“usepi”,在“Password”编辑框输入密码“usepi”,单击“OK”按钮,如果配置
正确,则出现连接成功窗口,如图10-7所示。502.建立JDBC-ODBC桥接器在和某一特定数据库建立连接之前,必须首先加载一种可用的JDBC驱动程序。这需要使用java.sql包中的下列方法来加载JDBC驱动程序,一般的使用格式如下:Class.forName(
"DriverName");“DriverName”是要加载的JDBC驱动程序名称。驱动程序名称根据数据库厂商提供的JDBC驱动程序的种类来确定。由于本例采用的是Oracle数据库,所以加载Oracle数据库驱动程序的方法为:Class.forName("su
n.jdbc.odbc.JdbcOdbcDriver");513.连接数据库创建和指定数据库的连接需要使用DriverManager类的getConnection()方法,其一般的使用格式如下:Connectionconn=DriverManager.getConnection(U
RL,user,password);该方法返回的是一个Connection对象。这里的URL是一个字符串,代表了将要连接的数据源,即具体的数据库位置。不同的JDBC驱动程序其URL是不同的。本例为:
Connectionconn=DriverManager.getConnection("jdbc:odbc:dbsepi","usepi","usepi");524.向数据库发送SQL语句在与某个特定数据库建立连接之后,这个连接会话就可以用于发送SQL语句。在发送SQL语句之前,必须创
建一个Statement类的对象,该对象负责将SQL语句发送给数据库。如果SQL语句运行后产生结果集,Statement对象会将结果集返回给一个ResultSet对象。例如:创建Statement对象是使用Connection接口的createStatement()方法来实现的
:Statementsmt=conn.createStatement();Statement对象创建好之后,就可以使用该对象的executeQuery()方法来执行数据库查询语句,executeQuery()方法返回一个R
esultSet类的对象,它包含了SQL查询语句执行的结果。例如:ResultSetrs=smt.executeQuery("SELECT*FROMstudent");535.处理查询结果一个ResultSe
t对象包含了执行某个SQL语句后满足条件的所有的行,它还提供了对这些行的访问,用户可以通过一组get方法来访问当前行的不同列。通常结果集的形式是一张带有表头和相应数值的表,例如:while(rs.next()){out.print(
""+rs.getString(1));out.print(""+rs.getString(2));out.print(""+rs.getString(3)+"<br>");546.关闭创建的各个对象一个Statement对象在
同一时间只能打开一个结果集,所以如果在同一个Statement对象中运行下一条SQL语句时,第一条SQL语句生成的ResultSet对象就被自动关闭了。当然也可以通过调用ResultSet接口的close()方法来手工关闭。关闭Statement对象和Connec
tion对象可以分别使用各自的close()方法,例如:rs.close();stmt.close();conn.close();5510.3.2利用PowerbBilder连接Oracle10.3连接Oracle数据库10.3.1利用
Java连接Oracle5610.3.2PowerBuilder连接OraclePowerBuilder连接Oracle数据库有两种方法,一是使用专用接口,二是使用通用接口。假设使用Oracle安装过程中创建的Oracle数据库“DBSEPI”。1.通过专用接口连接数据库Power
Builder的专用接口都是为网络上的大型数据库提供的,如Sybase、Oracle、Informix、SQLServer等。因此,首先要调通网络,其次安装数据库和专用接口软件,接下来配置数据库的描述文件(Profile)。通过专用接口连
接数据库需要首先创建数据库描述文件,然后利用数据库描述文件即可连接数据库了。Oracle数据库是大型分布式数据库,在PowerBuilder中通过专用接口“O90Oracle9.0.1”连接Oracle9数据库。
连接步骤共分为创建数据库描述文件、连接数据库两步。5710.3.2PowerBuilder连接Oracle(1)创建数据库描述文件首先进入数据库描述文件配置窗口,如图10-8所示。5810.3.2PowerBuilder连接Or
acle在数据库描述文件窗口中选中“O90Oracle9.0.1”,单击鼠标右键,在快捷菜单中选中“NewProfile”,出现数据库描述文件配置窗口,选中“Connection”选项卡,如图10-9所示。5910.3.2PowerBuilder连接Oracle在“P
rofileName”编辑框输入用户命名的数据库描述文件名,假设为“dbsepi”,在“Server”编辑框输入数据库名,假设使用Oracle安装过程中创建的数据库“dbsepi”,在“LoginID”编辑框输入用户名“usepi”,在“Password”编辑框输入该用户的密码“
usepi”,在“Connectas”下拉列表中选择该用户的级别“SYSDBA”,其他选项不做修改,单击“OK”按钮即可保存此数据库描述文件,同时此数据库描述文件“dbsepi”出现在数据库画板对象窗口中“O90Oracle9.0.1”的级联列表中,如图10-1
0所示。6010.3.2PowerBuilder连接Oracle(2)连接数据库在数据库画板中通过不同的数据库描述文件连接不同的数据库。选中要连接的数据库描述文件“dbsepi”,单击数据库画笔图标或
单击鼠标右键,在快捷菜单中选中“Connect”即可连接指定的数据库了。连接成功后,数据库描述文件“dbsepi”就显示在“O90Oracle9.0.1”级联列表中。612.通过ODBC通用接口连接数据库PowerBuilder通过ODBC通用接口
可以连接各种数据库,如Access、Foxpro、Excel、Oracle、Syabse等。在PowerBuilder中通过通用接口ODBC连接Oracle数据库的步骤共分为配置ODBC数据源、创建数据库描述文件、连接数据库三步。622.
通过ODBC通用接口连接数据库(1)配置ODBC数据源在数据库画板对象窗口中依次单击“ODBODBC”→“Utilities”左边的“+”号,使之展开,如图10-11所示。632.通过ODBC通用接口连接数据库选中“ODBCAdmin
istrator”,双击鼠标左键,再参照图10-3、10-4、10-5、10-6、10-7完成ODBC数据源的配置。(2)创建数据库描述文件在图10-11所示的数据库画板对象窗口中选中“ODBODBC”,单击鼠标右键,在快捷菜
单中选中“NewProfile”,出现数据库描述文件配置窗口,选中“Connection”选项卡,如图10-12所示。642.通过ODBC通用接口连接数据库在“ProfileName”编辑框输入数据库描述文件名“pb_oracle”,从“
DataSource”下拉列表中选择ODBC数据源“dbsepi”,在“UserID”编辑框输入用户名“usepi”,在“Password”编辑框输入该用户的密码“usepi”,单击“OK”按钮即可完成数据库描述文件的建
立。数据库描述文件创建成功后,该描述文件即出现在数据库画板对象窗口中“ODBODBC”的级联列表中。(3)连接数据库在数据库画板对象窗口中,选中要连接的数据库描述文件“pb_oracle”,单击数据库画笔图标或单击鼠标右键,在快捷菜单中
选中“Connect”即可连接指定的数据库。653.编写应用对象Open事件脚本在PowerBuilder的应用对象的OPEN事件中编写如下脚本:SQLCA.DBMS="ODBC"SQLCA.Au
toCommit=FalseSQLCA.DBPARM="CONNECTSTRING='DSN=pb_oracle;UID=usepi;PWD=usepi'"//此处连接的数据源为“pb_oracle”connect;ifSQLCA.SQLCODE=-1thenmes
sagebox('提示信息','数据库连接失败!')elsemessagebox('提示信息','数据库连接成功!')endif664.向数据库发送SQL语句PowerBuilder一般通过数据窗口对象与数据库连
接,显示数据查询、更新的结果,数据窗口对象是一可视化编辑数据的窗口,所以应先创建一数据窗口对象(例如dw_1),利用dw_1.settransobject(SQLCA)语句连接数据库,利用dw_1.retrieve()来获取数据库中的数据,利用dw_1.insertrow()插入一行数据,
在dw_1中可以向空行中添加或修改原有数据,利用dw_1.update()和COMMIT命令保存数据,利用dw_1.deleterow()删除一行数据。675.断开数据库,释放资源在PowerBuilder的应用对象的CLOSE事件中编写如下脚本:disconnect;//断开与数据
库的连接关于具体编程已不属于本教材的内容,请读者查阅其他相关参考资料。6810.4小结10.2系统数据库设计10.3连接Oracle数据库10.1系统功能分析第10章Oracle综合实例6910.4小结(1)数据库设计包含需求分析、概念结构设计、逻辑结构设计、物理结构设
计、数据库实施、数据库运行与维护六步,其中前三步是数据库设计成功与否的关键。(2)数据库设计过程中需求分析形成应用系统的数据字典,包含数据结构、数据项、处理要求等;概念结构设计形成应用系统的全局E-R图;逻辑结构设计形成由E-R图根据转换规则形成的数据库
的模式;在实际应用设计过程中经常需要根据实际情况为应用系统添加视图、序列、存储过程、存储函数或触发器等数据库对象,以使数据库设计更加完善。(3)利用Java和PowerBuilder连接Oracle数据库的方法。