数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

在PB中实现数据录入维持序号连续性的简单实现[1]


发布日期:2023年11月17日
 
在PB中实现数据录入维持序号连续性的简单实现[1]

在实际开发应用程序中常常会碰到数据行增加插入删除要求保持数据行的某一字段值的连续性如在职工表中希望按职务高低赋予不同的连续的值以便按职务高低进行显示在制定工作任务或计划时能体现 … 连续的子项目在此将此类要求连续的值称为序号则要求程序能实现以下功能

)增加(追加)数据行时能根据当前数据的总行数(n)追加新序号为(n+

)插入数据行时能根据当前所在行的序号(r)将序号大于和等于(r)的值都加上即序号(r)被赋予给新 插入的数据行而原来序号rr+n的数据行序号变为r+r+n+

)删除数据行时能根据当前所在行的序号(r)将序号大于和等于(r)的值都减去即原来序号rr+n的数据行序号变为rrn

对于程序员来说实现上述三个功能逻辑上来说比较简单但对于具体开发语言实现起来却有一定的难度特别是当序号是关键字组成之一时更是较为困难本人曾用Delphi开发一订货程序为实现订货明细录入具有以上功能竟然为此编制了三个后台存储过程才得与实现虽可在前台实现但数据行大于几十行时速度其慢无比而当时一个订货明细数据行一般在千条以上

而在Powerbuilder在保证较好的响应速度可直接在前台实现上述功能简直是小菜一碟这主要是Powerbuilder与Delphi对数据控制的机制不同而造成的

下面就在Powerbuilder中实现上述功能的方法举例予以说明

创建一个employee表如下

create table employee(

serial number //序号

name varchar //姓名

duty varchar //职务

primary key(serial) //设置字段serial为主键

假设表中将插入如下数据要求按职位高低进行显示在此例中序号即表示了职务的高低

序号 姓名 职务

board chairman 董事长

general manager 总经理

manager 经理

创建一个性新的库称作autoserialpbl以及一个应用程序对象称作a_autoserial

使用DataWindow画板创建一个数据窗口对象dw_employee

Data Source选择Quick Select或SQL Select

Presentation Style选择Grid

Table 选择刚创建的employee

Selection List 选择serialnameduty (注意serial字段在Selection List中的位置)

使用Window画板创建一个窗口w_autoserial并在窗体中放入以下控件

控件名 属性 值

DataWindows Control Name dw_

DataWindows Object Name dw_employee

HScrollBar TRUE

VScrollBar TRUE

Command Button Name cb_insert

Text 插入

Command Button Name cb_add

Text 增加

Command Button Name cb_delete

Text 删除

Command Button Name cb_save

Text 保存

[] []

               

上一篇:在PB中调用外部函数[1]

下一篇:在PB中实现数据录入维持序号连续性的简单实现[2]