
《PowerBuilder案例开发程序设计教程》-陈刚-电子教案chap2.ppt
32页第2章 PoweBuilder下数据库及其操纵,数据库操作的一般步骤: 1.创建数据库(主要由DBMS完成) 2.与数据库建立连接(由DataBase Profile :数据库连接参数配置画板完成) 3.操作数据库( Database :数据库画板操作),2.1 创建数据库,数据库的创建一般由DBA完成PB8.0中提供的ASA(Adaptive Server Anywhere 7.0)数据库系统既能运行在数据库服务器上,又能运行在客户机上作为本地数据库系统来使用,通过ODBC接口可以在PowerBuilder 8中直接创建和删除数据库 对于本地数据库只需做较小的改动即可连接到网络上的数据库服务器在PB8中创建ASA数据库 创建数据库后,PB做如下工作: 1 按照指定路径存放数据库,如果存在同名文件,提示是否覆盖 2 向ODBC中添加一个配置项目(ODBC.INI),名称与数据库相同,如果存在同名,则自动添加一个后缀 3 创建数据库profile文件,并添加到PB的初始化文件中(PB.INI),如果同名,则自动添加一个后缀 4 连接新建数据库,并将其设置为活动连接 删除ASA数据库2.1 创建数据库,PowerBuilder与数据库的连接方式有两种: (1)通过ODBC通用接口软件; (2)通过PowerBuilder为Sybase、Oracle、MS SQL Server、Informix 等提供的专用接口软件。
2.2 连接数据库,通过PB中集成的ODBC管理器更加方便 1.如果PowerBuilder要连接到网络上的数据库服务器,先安装并调通网络; 2.安装数据库接口软件和ODBC软件; 3.打开DataBase Profile对话框,双击ODBC Administrator进入ODBC数据源管理器 2.2 连接数据库,以Microsoft SQL Server为例说明专用接口连接数据库的过程 1.安装并调通网络; 2.安装数据库软件和专用接口软件; 3.配置数据库的连接参数; PB可以与多个数据库建立连接,但活动连接只能有一个2.2 连接数据库,2.3 创建和删除数据表,创建数据表:定义关系模式(基本属性和扩展属性) 打开Database画板,确保当前连接的是要操作的数据库 (可以有多个连接,但只有一个是活动连接) Column Name:表的列名,使用标识符作列名 Data Type:指定列的数据类型 Width:列的宽度 Dec:小数位数,只有当列的数据类型选择为decimal或numeric时才需要输入这个值,它表示小数点后数据的位数 Default: 设置该列的默认值 存盘,删除已经存在的表 。
2.3 创建和删除数据表,2.4 数据表的操纵,2.4.1 定义列的扩展属性 在创建表时,仅定义了列的基本属性,这些设置对于列来说是必需的,直接与表一起存储扩展属性定义了列的标题、标签、显示格式、编辑风格、和有效性规则,存放在系统表中 显示格式规定了显示列数据时的格式, 编辑风格定义了列输入、编辑、修改时的格式,通过为列定义编辑风格、可帮助用户正确输入列数据,避免错误数据,从而提高数据输入效率 有效性规则定义存储到列中的数据应满足的约束条件例如性别字段的值只能为“男”或“女”Headers选项卡可以定义列的标题和标签 Display选项卡可以定义列的显示格式 Validation选项卡可以定义列的有效性规则 Edit Style选项卡可以定义列的编辑格式 列的插入、删除和修改,2.4 数据表的操纵,2.4.2 索引和主键、外部键的创建与删除 在PowerBuilder中要向表输入数据,必须为表定义一个唯一索引或主键 在PowerBuilder中可以为表创建索引、主键和外部键索引分为唯一索引和普通索引 主关键字、外部关键字、索引都是基于某个表的,在建立它们之前都要选定某个表2.4 数据表的操纵,1.主关键字的建立和删除 2.外部关键字的建立和删除 【Rules】选项卡 3.索引的建立和删除,2.4 数据表的操纵,2.4.3 浏览和修改表结构 可以对各列的属性列名(Column name)、宽度(Width)、默认值(Default)等白色区域进行修改。
但对属性中的 Data type和Null均为灰色,即不可更改右击当前列指针图标,在弹出菜单中选择Insert Column和Delete Column可以进行列的插入和删除 对于已经存在的表,当插入新列时只能在原所有列后面插入,而且新插入的列Null属性只能为Yes当需要修改列的类型时,可以先将其删除,再重新插入,但此时将会毁坏数据表中该列的原有数据最好的办法是使用PowerBuilder系统提供的工具Sybase Central进行修改操作2.4 数据表的操纵,2.4.4 定义表属性,,2.5 视图及其操纵,通常基于以下原因使用视图: 为需要多次执行的SELECT语句命名 限制对表中某些字段的访问例如,对学费收费情况管理表,可建立一个视图包括学号、姓名、待交学费三个字段,这样就可以让某些用户只能查看学生的待交学费情况信息 组合来自多个表的信息,方便用户访问2.5.1 创建和删除视图 1.创建视图 视图画板工作区分为上中下三个部分:最上面部分是要在视图中显示的数据列的列名列表,显示顺序为先左后右;中间部分是当前创建视图的可用表下面部分指定各种条件2.5 视图及其操纵,如果选择了多个表,应该连接这些表。
初始情况下PowerBuilder按如下规则连接表: 如果表之间有外部键连接,自动按外部键关系连接; 如果没有外部键连接,PowerBuilder试图用列名和类型相同的列连接表 如果要创建新的连接关系,可在PainterBar上单击Join图标,然后单击用于连接的列即可如果要建立非等值连接,那么在画板工作区中单击连接表达式2.5 视图及其操纵,(4)设置最下部各选项卡 Sort选项卡:用于设置视图数据输出时的排序依据左窗格为所选择的列,右窗格为所设置的排序方式,将左窗格中的列用鼠标拖放到右窗格中即可 Where选项卡:用于设置限制条件 Group选项卡:设置视图中数据的分组依据,但该选项卡在创建视图时一般不使用 Having选项卡:用于指定对组的限制 Compute选项卡:用于添加计算列每一行添加一个计算列,左部为计算列的表达式(Computed Columns),右部为该计算列的别名(Alias)用回车键可添加新的计算列 Syntax选项卡:用于显示用户创建的视图的SQL语句2.5 视图及其操纵,2.删除视图 2.5.2 表或视图语法的输出,2.5 视图及其操纵,2.6 数据的操纵,2.6.1 数据检索 2.6.2 数据修改 2.6.3 数据排序和过滤 在结果视图区可以为数据定义排序方式和过滤器,但在此定义的排序方式和过滤器并不影响表和数据窗口。
2.6.4 数据的导入导出,2.7 数据库管理,2.7.1 定义数据库扩展属性 1.显示格式,2.显示掩码 显示掩码是定义数据显示格式常用的方法对于不同的数据类型定义的掩码有着明显的区别在定义掩码时必须保证所定义的掩码格式覆盖对应数据类型的所有格式PowerBuilder的显示掩码是分节的,节间以分号分开2.7 数据库管理,(1)显示格式中的颜色 在定义显示格式时,可以定义数据显示时的颜色,方法是在显示格式前添加颜色关键字,颜色关键字可以是颜色的英文名称,也可以是表示颜色的RGB值,同时颜色关键字应放置在中括号内例如:[RED]mm/dd/yy 颜色关键字有:[BLACK](黑色)、[BLUE](蓝色)、[CYAN](灰色)、[GREEN](绿色)、[MAGENTA](洋红色)、[RED](红色)、[WHITE](白色)和[YELLOW](黄色) 如果使用颜色值,可用下面公式计算: 颜色值=256 * 256 * 蓝色值+ 256 * 绿色值+红色值,2.7 数据库管理,(2)数字显示格式 最多可以定义四节,但只有第一节是必须的如下: Positive-format;negative-format;zero-format;null-format 第一节定义整数的显示格式,第二节定义负数的显示格式,第三节定义零的显示格式,第四节定义空值的显示格式。
在定义各节格式时可使用的特殊符号如下: #:显示一位数字所在处有数字就显示,没有就不显示例如,显示掩码为###.###在显示123.45时显示为123.45 0:代表0所在位置显示一位数字,若某位无数字则显示0如000.000,显示23.1时实际显示数据为023.1002.7 数据库管理,此外,可将百分号、小数点、货币符号、空格、插入到掩码中,这些符号照原样显示 如果不使用上述特殊符号,可使用两个关键字(放置在中括号内)[general]和[currency],前者是一般数值的显示格式,后者是货币显示格式,即按照操作系统规定的货币符号和显示格式显示,在中文Windows环境下,设置该格式后显示1234.57时,将显示¥1234.57 注释:[Currency(7)] 和[Currency(n)]是合法的编辑掩码、但不是合法的显示格式2.7 数据库管理,(3)字符串显示格式 字符串显示格式可以有两个显示掩码,形式为string-format;null-format第一节定义字符串显示格式,第二节定义空值显示格式 在字符串的显示掩码中使用的符号只有一个,即@,其他字符按原样显示例如,定义显示掩码为[red](@@@) @@@-@@@@,在显示字符串“800YESCELT”时,用红色显示为:(800) YES-CELT,2.7 数据库管理,(4)日期显示格式 日期数据的显示格式掩码可以有两节,定义形式为:date-format;null-format。
第一节定义日期显示格式,第二节定义空值显示格式2.7 数据库管理,2.7 数据库管理,(5)时间显示格式 时间数据显示格式可以有两个掩码,其定义形式为:time-format;null-format表示时间的掩码字符有:h、m、s、f分别表示时、分、秒和微秒系统默认格式为24小时格式,可以用AM/PM、am/pm、A/P或a/p分别表示上午和下午的时间例如,定义显示掩码hh:mm:ss am/pm,时间21:45:33将会显示为09:45:33 pm3.编辑风格 显示格式定义了数据的显示方式,而在输入数据时,为了提示要输入的数据范围、字母的大小写等特殊要求,可以使用编辑风格 4.有效性规则 有效性规则用来描述向数据列中输入数据时应该满足的条件如果输入到该列的数据不满足有效性规则,就会产生ItemError 事件有效性规则可以应用到表中列定义的扩展属性上和数据窗口对象的列属性上利用有效性规则,可以实现数据的有效性检查,达到高效、简洁的目的2.7 数据库管理,2.7.2 使用Sybase Central管理数据库,Sybase Central是Sybase公司提供的数据库管理工具,不仅可以完成在PowerBuilder环境下对数据库的所有操作,还可以完成一些在PowerBuilder环境下所不能完成的数据库管理功能。












