[信息与通信]Power Builder第3讲.ppt

上传人:sccc 文档编号:5614830 上传时间:2023-08-02 格式:PPT 页数:64 大小:2.38MB
返回 下载 相关 举报
[信息与通信]Power Builder第3讲.ppt_第1页
第1页 / 共64页
[信息与通信]Power Builder第3讲.ppt_第2页
第2页 / 共64页
[信息与通信]Power Builder第3讲.ppt_第3页
第3页 / 共64页
[信息与通信]Power Builder第3讲.ppt_第4页
第4页 / 共64页
[信息与通信]Power Builder第3讲.ppt_第5页
第5页 / 共64页
点击查看更多>>
资源描述

《[信息与通信]Power Builder第3讲.ppt》由会员分享,可在线阅读,更多相关《[信息与通信]Power Builder第3讲.ppt(64页珍藏版)》请在三一办公上搜索。

1、2023年8月2日,第1页,第3讲 数据库管理,教学目标教学重点教学过程,2023年8月2日,第2页,教学目标,学习和掌握数据库管理的基础知识 能运用PowerBuilder 10.0中的工具对数据库进行操作 能在程序中连接数据库,2023年8月2日,第3页,教学重点,建立数据源对数据库进行管理操作数据库,2023年8月2日,第4页,教学过程,数据源的创建与设置数据库面板数据库管理连接数据库 操作数据表操作表中的数据,2023年8月2日,第5页,3.1 数据库概述,PowerBuilder 10.0提供了ASA数据库(Adaptive Server Anywhere 9),7.0以前的版本称之

2、为SQL Anywhere。ASA几乎具备现代数据库的一切特征。因此,在ASA上开发的应用程序,无须修改即可连接别的数据库,仅仅改变数据源的名称即可。此举极大地方便和提高了应用程序的开发效率。在PowerBuilder开发环境中,以下几个概念需注意区分。(1)物理数据库:这是一个磁盘文件,表格及数据等全部在这个文件中。可以是.DBF文件、文本文件、MS SQL Server数据库、ASA数据库等。(2)日志文件:这也是一个磁盘文件,一般以.log为扩展名,用来记载相关数据库的环境及其操作。删除相应的.log文件,一般不会影响数据库。(3)ODBC数据源:这是为连接物理数据库而提供的一种标准接口

3、。ODBC数据源指明了数据库的基本属性,如物理数据库的位置、数据库驱动程序(即是哪一种数据库)、用户名、口令等。通过ODBC数据源,我们可以不关心物理数据库。一个物理数据库可以定义若干个ODBC数据源。图5.1很清晰地描述了有关ODBC接口与各数据库之间的关系。,2023年8月2日,第6页,3.1 数据库概述,图5.1 ODBC接口与各数据库之间的关系,2023年8月2日,第7页,PowerBuilder与数据库的连接通过数据库接口来实现。PowerBuilder提供了两类接口:ODBC接口和专用接口。ODBC(Open Data Base Connectivity)接口是微软公司提出的开放式

4、数据库互连标准接口,它以关系数据库标准查询语言SQL来存取连接到的数据源,ODBC支持单个应用系统访问多个不同的数据库管理系统(DBMS)。专用接口针对具体的数据库管理系统而设计,通过专用接口我们可以将PowerBuilder 连接到相应的数据库上。,2023年8月2日,第8页,一、ODBC接口 ODBC是PowerBuilder与数据库进行连接的接口之一,它位于PowerBuilder 与具体的数据库管理系统之间.,2023年8月2日,第9页,通过ODBC接口,PowerBuilder 访问数据库的模式:,PB应用程序 数据库服务器 ODBC接口,数据库到网络的接口 数据库到网络的接口,网

5、络 网 络,2023年8月2日,第10页,ODBC工作原理,Powerbuilder,PowerbuilderODBC接口,ODBC驱动管理程序,ODBC SQLAnywhere,ODBC ORACLE,ODBC SYBASE,ODBC MSSQL Server,Watcom SQL,ORACLE,SYBASE,MSSQL Server,2023年8月2日,第11页,(3)定义DB Profile(仅仅开发环境需要,运行时不需要)。(4)连接数据库。对于在本机创建的ASA数据库,系统将自动定义数据源和DB Profile。而在别的机器上创建的ASA数据库或其他类型的数据库复制到本机时,则必须要

6、定义ODBC数据源和DB Profile。连接成功后,就可以创建和管理表及数据等。,(4)DB Profile:这是在PowerBuilder开发环境中操作数据库所需要的,它指明了使用哪一个数据源。在用户的应用程序中不需要DB Profile。在PowerBuilder开发过程中,数据库的操作有以下几步。(1)创建物理数据库,例如DBF、ASA等。(2)定义ODBC数据源。,2023年8月2日,第12页,3.2 数据库画板,Database画板是专门用来管理数据库的,包括创建和删除ASA数据库、连接数据库、定义ODBC数据源、创建和管理表及数据,等等。从选单或工具栏进入Database画板,如

7、图5.2所示。,图5.2 打开数据库画板,2023年8月2日,第13页,3.2 数据库画板,进入Database画板后的界面如图5.3所示。要在Database主窗口内打开更多的子窗口,可通过主选单View打开,如图5.4所示。,图5.3 Database画板 图5.4 自定义子窗口,2023年8月2日,第14页,3.3 创建ASA数据库,1创建Adaptive Server AnyWhere数据库在进入Database画板后,打开Objects子窗口,如图5.3所示,在这个子窗口中,列出了所有可以允许连接的数据库接口。然后用鼠标双击ODBC项下Utilities中的Create ASA Da

8、tabase项,如图5.3所示。出现标题为“Create Adaptive Server Anywhere Database”的窗口后,在Database Name项中给出数据库名。可以通过Browse按钮确定数据库的存放地点。数据库用户UserID项默认为dba,口令Password项默认为sql。如果不用默认值,则必须牢牢记住口令。数据库文件名为F:workspaceXSCJ.db,数据库日志名为XSCJ.log。其他项就用系统默认值,不必再填。填好后,单击“OK”按钮,如图5.5所示。创建好的ASA数据库XSCJ可以在Objects子窗口的树形目录里看到,如图5.6所示。,2023年8月

9、2日,第15页,3.3 创建ASA数据库,图5.5 创建ASA数据库 图5.6 ASA数据库XSCJ,2删除ASA数据库在图5.3中,用鼠标双击Delete ASA Database,将会出现一个窗口,询问要删除的ASA数据库的名称(包括路径)。删除数据库应特别慎重。,2023年8月2日,第16页,3.4 创建ODBC数据源,1创建ODBC数据源有了物理数据库,接下来定义ODBC数据源。PowerBuilder是通过数据源来连接数据库的,而不管物理数据库是什么。既可以通过Windows控制面板里的ODBC数据源来创建,也可以在PowerBuilder数据库画板的Objects子窗口中,双击OD

10、BC项下Utilities项的ODBC Administrator项,如图5.3所示,将出现标题为“ODBC数据源管理器”窗口,如图5.7所示。,图5.7 创建ODBC数据源,2023年8月2日,第17页,3.4 创建ODBC数据源,在图5.7中,选择“用户DSN”,在该窗口中查看已有的数据源,若要修改已有的数据源,可以单击“配置”按钮进行修改。单击“添加”按钮,创建新数据源,将出现标题为“创建新数据源”的窗口,如图5.8所示。,图5.8 创建新数据源,2023年8月2日,第18页,3.4 创建ODBC数据源,在图5.8中,选择合适的驱动程序。这里选择Adaptive Server Anywh

11、ere 9.0,单击“完成”按钮,将出现标题为“Adaptive Server Anywhere 9 的ODBC配置”窗口,如图5.9所示。在图5.9中,选择ODBC,在DataBase Source Name项中输入新的数据源名称,这里为XSCJ。然后,选择登录,使用提供用户ID和口令项。在用户ID项中输入dba,在口令中输入sql。最后,选择Database,在DatabaseFile项中输入物理数据库名,可以用Browse按钮确定,如图5.10所示。完成后,回到图5.9中所示的ODBC选项页,点击测试连接按钮,查看数据源是否可以连接。若测试结果为可以连接,则单击“确定”按钮,完成数据源的

12、创建过程。,2023年8月2日,第19页,3.4 创建ODBC数据源,图5.9 配置ASA数据源 图5.10 配置ASA数据源,2删除ODBC数据源在图5.7中,先选择要删除的数据源,然后单击“删除”按钮,系统会再次询问是否删除,选择Yes将删除指定的数据源。删除数据源,不会影响物理数据库。,2023年8月2日,第20页,3.5 配置DB Profile,1配置DB Profile在PowerBuilder开发环境中操作数据库,需要创建和配置DB Profile,它指明了使用哪一个数据源。在用户的应用程序中不需要DB Profile。在进入Database画板后,打开Objects子窗口,在这

13、个子窗口中,列出了所有可以允许连接的数据库接口。选择ODBC项,单击鼠标右键,选择NewProfile,如图5.11所示,将出现标题为“Database Profile Setup-ODBC”的窗口,如图5.12所示。在图5.12中,选择Connection,在Profile Name项中,输入DB Profile名,这里为XSCJ;在Data Source项中,选择ODBC数据源,这里为XSCJ;如果不输入User ID和Password,则每次连接数据库时,都会要求输入。,2023年8月2日,第21页,3.5 配置DB Profile,图5.11 创建DB Profile 图5.12 配置

14、DB Profile,2删除DB Profile图5.13 连接数据库在图5.13中,用鼠标右键单击要删除的DB Profile,选择Delete,系统会再次询问是否删除,选择Yes将删除指定的DB Profile。删除DB Profile,不会影响物理数据库。,2023年8月2日,第22页,3.6 连接数据库,1连接数据库在DB Profile成功创建后,就可以连接数据库了。在Database画板的Objects子窗口中,选择ODBC项,在该项列出了所有可以连接数据库的DB Profile。选择要连接的DB Profile,这里为XSCJ,单击鼠标右键,选择Connect连接数据库,如图5.

15、13所示。若连接成功,会在相应的DB Profile前面的图标上打上“”标记,该数据库变为当前工作数据库。这时就可以在该数据库中创建表,检索数据等。若连接不成功,一般是已被同一数据库的另一个DB Profile连接,这时应先断开别的数据库连接,然后再连接即可。但同一时刻,可以连接多个不同的物理数据库。,2断开连接的数据库在图5.13中,相应的DB Profile前面的图标上打上“”标记的为当前正在连接的数据库。要断开连接,在该项上单击鼠标右键,选择Disconnect,即可断开连接。这时候就可以,2023年8月2日,第23页,选择“Preview”选项卡,单击此选项卡上的“Test Conne

16、ction”按钮,测试数据库的连接配置。如果能够成功地连接数据库,则显示对话框,提示数据库连接成功。,2023年8月2日,第24页,用代码连接数据库,通常在应用程序对象的“Open”事件中编写类似于下面这样的代码段,实现与指定数据库的连接。SQLCA.DBMS=ODBC SQLCA.AutoCommit=False SQLCA.DBParm=ConnectString=DSN=tv_net;UID=;PWD=CONNECT USING SQLCA;If SQLCA.SQLCODE 0 Then MessageBox(数据库连接失败,sqlca.sqlerrtext)Halt End If,20

17、23年8月2日,第25页,在需要的描述文件上右击,从弹处的快捷菜单中选“Properties”项“Database Profile Setup”对话框。在上面的代码段中用到了SQLCA,它叫做事务对象。事务对象是一个特殊的不可视的对象,其功能是为PowerBuilder程序与数据库之间提供一个通信区。事务对象当中定义了PowerBuilder用来与数据库进行连接的参数。在访问数据库之前,必须先建立一个事务对象,然后给这个事务对象的属性赋予合适的值,才能通过这个事务对象与数据库连接,完成所需的数据库操作。代码的前三行就是给事务对象设置必要的参数。SQL语言提供了四条用来进行事务管理的语句。CON

18、NECT:进行数据库连接。DISCONNECT:断开与数据库的连接。COMMIT:提交当前事务对数据库已做的所有尚未提交的更新操作。ROLLBACK:撤消当前事务尚未提交的所有更新操作。上面代码段中用CONNECT进行与数据库的连接,如果 SQLCA.SQLCODE不为0,即连接失败,则显示出错信息并终止应 用程序。,2023年8月2日,第26页,练习,通过ODBC与本地机上的SQLServer 2000中的数据库student建立连接通过ODBC与教师机上的SQLServer 2000中的数据库student建立连接3、通过ODBC与本地机上的Server Anywhere8.0中的数据库s

19、tock建立连接 通过以上练习,重点找出不同之处,2023年8月2日,第27页,3.7 操作数据表,数据库是数据表、索引、视图及数据的集合。数据库的管理主要也就是对数据表、索引、视图和数据的管理。其中,数据库的创建和删除可以通过Sybase Central来完成,Sybase Central提供了一个管理ASA数据库的图形界面。,2023年8月2日,第28页,操纵表结构数据表是一个二维表,它可以表示一个关系数据模型中的关系。由列表示字段(或域),由行表示元组(或记录)。注意:在PowerBuilder中不能用汉字作为数据表的列名。Integer型数据由系统最多定义长度。数据的长度就是数据表的列

20、的宽度。,2023年8月2日,第29页,在Database画板的Objects子窗口中,选择ODBC项,可以看到当前连接数据库的图标前有个“”号,单击它,其中有一项“Tables”,再单击“Tables”前面的“”,里面列出了该数据库的所有表。用鼠标右键单击“Tables”项,出现一个选单,选择“New Table”创建新表,如图5.14所示。这时将打开表结构定义窗口。,3.7.1 创建新表,2023年8月2日,第30页,还可以从选单创建表、插入新列,选择“Object”主选单的“Insert”子选单里的“Table”和“Column”来创建新表和新的列,“Delete”子选单删除当前表,如图

21、5.15所示。从主选单“View”中选择“Columns”将打开表定义子窗口,用鼠标右键单击该子窗口的空白区域,选择“New Table”也可以创建新表,如图5.16所示。,图5.15 从主选单Object创建新表 图5.16 从Columns窗口中也可以创建新表,2023年8月2日,第31页,3.7.2 定义表结构,在表结构定义窗口中(如图5.17所示),输入列名Column Name、列的类型Data Type、列的宽度Width、小数位Dec(仅实数才有)、是否为空值NULL、默认值Default(一般情况下就设为None)。按回车或键增加新列。也可以用鼠标右键单击列名前的箭头来插入、删

22、除列。列名应符合标识符的命名规则,不要用汉字。只有必须输入数据的列,其NULL值才设为No,其他列应尽量将NULL值设为Yes。列名、类型、宽度等在表添加数据后,就不能再改变,因此表的定义要慎重。(当然以后可以用别的方法改)。,图5.17 定义表结构,2023年8月2日,第32页,3.7.2 定义表结构,为了后面介绍数据库操作的需要,这里创建3个基本表,分别是学生表XS、课程表KC、学生成绩表XS_CJ。这3个表的列属性分别如表5.1、表5.2、表5.3所示。,表5.1 学生表(表名XS)结构,2023年8月2日,第33页,3.7.2 定义表结构,5.2 课程表(表名KC)结构,表5.3 成绩

23、表(表名XS_CJ)结构,2023年8月2日,第34页,3.7.3 删除表,选择要删除的表,单击鼠标右键,出现一个选单,选择“Drop Table”,如图5.18所示。这时将出现一个标题为“PowerBuilder”的窗口,询问是否要删除选定的表。若表中已有数据,应慎重处理,因为删除后就不能恢复了。还可以从选单删除当前表,选择“Object”主选单的“Delete”子选单删除当前表,参见图5.15。,2023年8月2日,第35页,3.7.4 创建主键、索引和外键,1设置主键表结构定义好后,我们还不能向表中添加数据。PowerBuilder规定,只有给表设置了主键或唯一索引,才能在数据库画板中向

24、表中添加数据。主键是表中唯一标识一个记录的列或列的组合,即表中任意两行的主键值都不能相同。能够作为主键的列,其NULL值必须为No。一个表只能有一个主键。主键设置后,就不能再改变。选择要设置主键的表,单击鼠标右键,出现一个选单,选择“New”的子选单“Primary Key”,如图5.19所示。这时将出现图5.20所示的窗口,它列出了该表的所有列,将要设置为主键的列打上“”。如果在NULL值为Yes的列打上“”,将会出现一个标题为“PowerBuilder”的错误提示窗口,如图5.21所示,该错误信息的意思是列不能为NULL。选好要设置为主键的列后,关闭图5.20所示的窗口,将弹出标题为“Pr

25、imary Key”的窗口,询问是否保存,单击Yes,将完成主键设置。,2023年8月2日,第36页,3.7.4 创建主键、索引和外键,图5.19 设置主键Primary Key 图5.20 设置主键列,图5.21 主键设置失败,2023年8月2日,第37页,3.7.4 创建主键、索引和外键,还可以用别的方法设置主键。鼠标单击要设置主键的表前的“”,再用鼠标右键单击Primary Key,选择New Primary Key,如图5.22所示,将创建主键。,2设置索引索引是在数据库中实现表中数据逻辑排序的方法,建立索引的列可以是一个列,也可以是多个列的组合。有了索引后,表中原本无序的数据,就可以

26、按照所设定的顺序输出。索引可以是重复索引,即允许数据重复;也可以是唯一索引,即不允许数据重复。设置索引的方法类似于设置主键,在图5.19中选择“New”的子选单“Index”建立索引,将出现图5.23。将要设置为索引的列打上“”。在 Index项里输入索引名,索引名一般用表名加列名来命名,以确保在数据库中的唯一性。选择Unique表示是唯一索引,即不允许数据重复。选择Ascending表示索引按升序排列。最后关闭该General所在的子窗口,就创建了一个索引。与主键不同,可以为一个表创建多个索引,并且作为索引列的NULL值可以为Yes。还可以用别的方法创建索引。鼠标单击要创建索引的表前的“”,

27、再用鼠标右键单击Indices,选择New Index,如图5.24所示,将创建新的索引。,2023年8月2日,第38页,3.7.4 创建主键、索引和外键,图5.23 设置索引列 图5.24 创建索引的另一种方法,3创建外键外键是那些与其他表的主键相对应的列,它被用来连接多个表,反映表之间的一种隶属关系,保证数据的一致性。一个表可以有多个外键。例如,XS表中的主键学号与XS_CJ表中的主键学号是应该一致的,因此,有必要在XS表与XS_CJ表之间定义一个外键。同理,在XS_CJ表与KC表之间也应该定义一个外键用来保证两个表中课程号列属性数据的一致性。表建好后,定义外键的步骤如下。,2023年8月

28、2日,第39页,3.7.4 创建主键、索引和外键,(1)选择要设置外键的表XS_CJ,单击鼠标右键,出现一个选单,选择“New”的子选单“Foreign Key”,如图5.25所示。,(2)这时将出现图5.26,选择General页。在Foreign Key项中,输入外键名fk_1;在要作为外键的列前打上“”。,图5.25 创建外键,图5.26 定义外键选择列,2023年8月2日,第40页,3.7.4 创建主键、索引和外键,(3)再选择Primary Key页,如图5.27所示。在Table项里列出了所有的表(包括系统表),选择将要作为表XS_CJ外键的表KC,选择后,在Columns项中列出

29、表KC的所有列,列前打“”的是主键。,图5.27 定义外键选择Primary Key,(4)再选择Rules页,如图5.28所示,选择删除规则。一般不需要选择,就用系统默认值。关闭外键定义子窗口,系统会询问是否保存,选择Yes,就成功地创建了外键。,图5.28 定义外键选择删除规则,2023年8月2日,第41页,3.7.4 创建主键、索引和外键,4外键视图外键定义后,可以用视图的方式来展示表之间的关系。鼠标右键单击fk_class,选择Open Referenced Table,结果如图5.29所示。5主键视图鼠标右键单击Primary Key,选择Open Dependent Tables,

30、将显示类似于图5.29的画面。可以将每个表的主键视图都打开。,图5.29 外键视图,2023年8月2日,第42页,3.7.5 删除主键、索引和外键,1删除主键鼠标右键单击Primary Key,如图5.30所示,选择Drop Primary Key,将会询问是否删除,选择Yes将删除主键。2删除索引用鼠标右键单击要删除的索引,如图5.31所示,选择Drop Index,将会询问是否删除,选择Yes将删除选定的索引。,图5.30 删除主键 图5.31 删除索引,2023年8月2日,第43页,3.7.5 删除主键、索引和外键,3删除外键用鼠标右键单击要删除的外键,如图5.32所示,选择Drop F

31、oreign Key,将会询问是否删除,选择Yes将删除选定的外键。,2023年8月2日,第44页,3.7.6 定义列的扩展属性,列的扩展属性用来给列增加注释Comment、题头Headers、显示格式Display、有效性规则Validation Rule、编辑风格Edit Style。可以不定义列的扩展属性,而采用默认值。鼠标右键单击相应的列,选择Properties,如图5.33所示,这时将会出现属性窗口图5.34。分别设置相应属性。,图5.33 定义列的扩展属性 图5.34 设置列的扩展属性,2023年8月2日,第45页,3.8 数据的输入,3.8.1 利用图形界面方式输入数据在表的定

32、义完成后,我们可以往表中输入数据,也可以查看和修改数据。PowerBuilder提供了3种输入数据方式:网格格式Grid、自由格式FreeForm、表格格式Tabular。用鼠标右键单击要输入数据的表,将弹出如图5.35所示的选单,选择Edit Data子选单,会列出3种输入方式:Grid、FreeForm、Tabular,选择其中一种输入方式。这里我们选择Grid格式,这是最常用的格式。格式选好后,将出现如图5.36所示的界面。如果表中有数据,将会列出所有的数据。很明显,图5.36所示的界面中没有数据。在图5.36中,如果没有给表定义列的扩展属性,则题头将用列名代替。,图5.35 选择输入数

33、据的格式 图5.36 编辑数据,2023年8月2日,第46页,3.8.1 利用图形界面方式输入数据,可以从工具栏选择合适的命令来处理数据,如图5.37所示。也可以在图5.36的任意位置,单击鼠标右键,将弹出一个选单,如图5.38所示,选择相应的命令。,图5.37 数据编辑工具栏 图5.38 数据编辑选单,2023年8月2日,第47页,3.8.2 利用嵌入式SQL命令来输入数据,下面介绍PowerBuilder 10.0如何利用嵌入式SQL命令来操作ASA数据库XSCJ,以完成数据输入的功能。这里用到的T-SQL语句将在第12章SQL语句中详细介绍。1初始化XSCJ数据库中的XS表,样本数据如表

34、5.4所示,从主选单“View”中选择“Interactive SQL”将打开SQL命令编辑窗口(如图5.39所示),在该窗口中输入如下的“Interactive SQL”命令:INSERT INTO XSVALUES(081101,王林,计算机,1,1990-02-10,50,NULL);INSERT INTO XSVALUES(081102,程明,计算机,1,1991-02-01,50,NULL);INSERT INTO XSVALUES(081103,王燕,计算机,0,1989-10-06,50,NULL);/*(此处可根据表5.4中所提供的样本数据依照上面的方法逐行输入,直至所有数据全

35、部输入表中)*/输入完“Interactive SQL”命令之后,点击鼠标右键出现了如图5.40所示的选单,在这个选单中选择“Execute”选单项来执行SQL命令或在工具栏上选择“Execute”图标执行。,2023年8月2日,第48页,3.8.2 利用嵌入式SQL命令来输入数据,图5.39 选择“Interactive SQL”图5.40 执行所选区域的SQL命令,2023年8月2日,第49页,3.8.2 利用嵌入式SQL命令来输入数据,执行完SQL命令之后,可以再次从主选单“View”中选择“Interactive SQL”打开另一个SQL命令编辑窗口。在这个SQL命令编辑窗口中输入如下

36、“Interactive SQL”命令:SELECT*FROM XS;使用“Execute”执行后结果如图5.41所示。,图5.41 执行结果,2023年8月2日,第50页,3.8.2 利用嵌入式SQL命令来输入数据,2初始化XSCJ数据库中的KC表,样本数据如表5.5所示,表5.5 KC表,样本数据,2023年8月2日,第51页,3.8.2 利用嵌入式SQL命令来输入数据,使用同样的方法,可以向XSCJ数据库中的KC表输入初始数据。输入数据的“Interactive SQL”命令如下:INSERT INTO KCVALUES(101,计算机基础,1,80,5);INSERT INTO KCV

37、ALUES(102,程序设计与语言,2,68,4);INSERT INTO KCVALUES(206,离散数学,4,68,4);INSERT INTO KCVALUES(208,数据结构,5,68,4);/*(此处可根据第1章中表5.5所提供的样本数据依照上面的方法逐行输入,直至所有数据全部输入表中)*/使用“Execute”执行之后,即完成了KC表的数据输入工作。3初始化XSCJ数据库中的XS_CJ表,样本数据如表5.6所示,2023年8月2日,第52页,3.8.2 利用嵌入式SQL命令来输入数据,表5.6 学生成绩(XS_CJ)表样本数据,2023年8月2日,第53页,3.8.2 利用嵌入

38、式SQL命令来输入数据,使用同样的方法可以向XSCJ数据库中的XS_CJ表中输入初始数据。输入数据的“Interactive SQL”命令如下:INSERT INTO XS_CJVALUES(081101,101,80,NULL);INSERT INTO XS_CJVALUES(081101,102,78,NULL);INSERT INTO XS_CJVALUES(081101,206,76,NULL);/*(此处可根据第1章中表5.6所提供的样本数据依照上面的方法逐行输入,直至所有数据全部输入表中)*/使用“Execute”执行之后,即完成了表5.6的数据输入工作。但是表XS_CJ中的学分属

39、性列的值仍然没有具体的数值。因此,通过输入并执行下面的“Interactive SQL”命令来完成学分属性列的数据输入任务。,2023年8月2日,第54页,3.8.2 利用嵌入式SQL命令来输入数据,UPDATE XS_CJ SET 学分=CASE WHEN 课程号=101 THEN 5 WHEN 课程号=210 THEN 5 WHEN 课程号=301 THEN 3 WHEN 课程号=302 THEN 3 WHEN 课程号=206 THEN 4 WHEN 课程号=z208 THEN 4 WHEN 课程号=209 THEN 4 WHEN 课程号=212 THEN 4 WHEN 课程号=102 T

40、HEN 4 END执行完SQL语句后,保存并关闭SQL命令编辑窗口。,2023年8月2日,第55页,3.9 视图,视图是一种特殊的虚拟表,可以像表一样地访问和使用。但视图并不是真正的表,它没有自己的数据,在数据库中并不存在视图的物理结构。它的数据来自一个或多个数据库中的表和视图。视图在数据库中是作为查询(Query,查询本质上是SQL Select语句)来保存的,当引用一个视图时,数据库管理系统就执行对应的查询,将查询结果作为视图来用。使用视图的好处在于隐藏数据库中表的真正结构,只向用户提供需要的并且有访问权限的字段,这样既方便了用户,同时也可以保证数据库中表的安全性。视图一旦建好,就不能修改

41、。如果对当前的视图不满意,唯一的办法就是删除它,然后重建一个新的视图。在datawindow中,视图和表的用法几乎一样,唯一的差别就是在视图中只能检索和删除记录,不能增加和修改数据。1创建视图打开数据库画板,连接要创建视图的数据库并展开,用鼠标右键单击Views,出现弹出式选单,如图5.42所示。在图5.42中,选择弹出式选单的New View,将出现标题为“Select Tables”的窗口,如图5.43所示,选择要作为视图数据源的表或视图,打开视图画板工作区,如图5.44所示。这里选择表KC和表XS_CJ。,2023年8月2日,第56页,3.9 视图,图5.42 创建视图 图5.43 选择

42、视图数据源,图5.44 视图画板工作区,2023年8月2日,第57页,3.9 视图,在图5.44的视图画板工作区中,选择要在视图中显示的列,并可以在上图底部的Where选项卡中设置检索条件,如图5.45所示。,图5.45 设置检索条件,2023年8月2日,第58页,3.9 视图,最后保存视图。视图的命名一般以“v_”为前缀,这里把刚才创建的视图命名为v_1。创建视图也可从选单ObjectInsertView开始。2删除视图在数据库画板工作区,选择要删除的视图,单击鼠标右键,出现一个选单,选择“Drop View”,如图5.46所示。这时将出现一个标题为“PowerBuilder”的窗口,询问是

43、否要删除选定的视图。选择是,则删除该选定视图。,图5.46 删除视图,2023年8月2日,第59页,复习:应用对象,2023年8月2日,第60页,一、应用对象的Open(打开)事件Open事件是PowerBuilder应用程序的唯一入口,在启动应用程序是发生,且只发生一次。对所有应用程序来说都必须对该事件编程,否则运行应用程序时系统将出现一个警告对话框,提醒必须对应用对象的Open事件编程。一般来说,在Open事件处理程序只应该完成下述工作:完成初始化工作;利用INI文件设置某些属性,或初始化一个事务对象;查询环境,保证运行应用程序所需要的所有资源都可以使用;连接要访问的数据库;打开应用程序的

44、第一个窗口。,2023年8月2日,第61页,二、Close(关闭)事件应用程序的Close事件只发生一次,它发生在退出应用程序、返回到操作系统之前,通常在这个事件的事件处理程序中完成下述工作:删除应用程序运行过程中创建的对象(例如额外的事务对象等);往INI文件中保存状态信息,以便下次运行程序时恢复状态;关闭应用程序中尚未关闭的文件;断开与数据库的连接。,2023年8月2日,第62页,作业:,实训内容:熟悉数据库的创建与连接方法:P300.实验4,2023年8月2日,第63页,练习1:,建立学生成绩管理库包含学生(Student)、课程(Course)、和成绩(Grade)三个表,它们的字段名

45、和类型如下:Student(学生表):sno(学号)主键 char(7)sname(姓名)char(10)sex(性别)char(2)birthday(出生日期)datetimewherefrom(生源)char(6)his(简历)textCourse(课程表):Cno(课程编号)主键 char(6)Cname(课程名称)char(20)Type(类型)char(1)Hours(学时)smallintGrade(成绩表):sno(学号)char(7)cno(课程编号)主键 char(6)score(成绩)decimal(5,1),2023年8月2日,第64页,练习2:,定义Student表、Course表和Grade表的扩展属性。练习3:建立主关键字。建立外部关键字。建立索引。删除表、主键、外部键与索引键。对Student表、Course表和Grade表的数据进行编辑(每个表输入20条记录)。练习5:在应用程序对象的打开(open)事件中添加连接数据库的脚本,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号