theprogresscreateandmodifyDatabase

来源:互联网 发布:sql给表增加字段 编辑:程序博客网 时间:2024/06/13 14:27

Progress程序的分类:

.p 主程序(源程序)
.i 子程序(不能被单独执行,只能被.p程序引用)
.r 编译后的可执行程序

注释用/* */ 框起来,必须成对使用,否则报错。

 


定义一个变量:

define variable 变量名 as|like character|date|decimal|integer|logical.
例如: define variable a as character. /*定义了一个字符变量a*/
define variable b like pt_part. /*定义一个和pt_part一样的变量b*/

修改一个变量或者表字段(让用户输入新值):
update 变量名|字段名 with frame a.
例如:update a b with frame a. /*一次可以修改多个字段,用空格隔开即可*/

显示一条消息: message "想要显示的内容".
会在屏幕下方显示出引号中的字符串.

最简单的查找语句:
find first 表名 where 字段名>=条件 no-lock no-error.
if available 表名 then do: end.
else do: end.
例如: find first pt_mstr where pt_part = "123" no-lock no-error.
if available pt_mstr then do: message "找到啦". end.
else message "没找到". end.

在屏幕上显示数据:
display 变量名 字段名 字符串. /*中间用空格隔开*/
例如: display a pt_part "Progress".


如果要遍历某个表的所有数据:
for each 表名 where 条件 :
display 字段1 字段2 字段3.
end.
for each xxxx: end. 是固定格式,最后一定要加上end,否则报错.

*********************************************************
PROGRESS 9.1D一般创建多卷模式的数据库,所以创建结构文件是首要的...

一、数据库结构文件的创建:

Progress 9.1D一般创建多卷模式的数据库,所以创建结构文件是首要的!Progress数据库结构文件扩展名是st,比如生产系统数据库prod的结构文件是prod.st,和DB文件同目录!

PROGRESS数据库结构文件的格式如下:

①指定Area的类型,比如是DB还是BI,如果以“#”字符开始,该行被认为是注释,具体规定如下:
   a --- After-image (AI) Area
   b --- Before-image(BI) Area 另外又称为Primary Recovery Area
   d --- Schema Area and Application Data Areas
   t --- Transaction log (for two-phase commit)
   【目前主要用到b & d 】
②Area的信息:"Area名称":Database engine-generated area number ,The records per block
///关于Database engine-generated area number和The records per block,妈的我也没搞懂
③数据库Area对应的文件名和路径(可以用绝对路径和相对路径,建议用绝对路径)
④Area数据存放的形式:
   f --- Fixed,就是固定大小,后面带一个固定的数值
   v --- Variable,可变大小,初始值128KB;通常后面带一个数值作为这个可变大小的最大值
   r --- Raw Device
   空 --- 表示无限制的可变大小(这时需要考虑操作系统的文件大小限制;比如HP-UX文件通常有2G限制)
⑤Area的大小(单位:Kb,该值必须是16的整数倍,否则会被数据库自动调整为最合适的16的整数倍大小)

二、数据库的创建:

例,假设progress安装目录是/mfg/dlc91,st文件已经创建且在当前目录,那么在当前目录下创建数据库命令如下:

# /mfg/dlc91/bin/prostrct create prod prod.st

如果st文件没问题,那么会出现正在formating extents等提示,然后OK!如果要指定数据库的block size:

# /mfg/dlc91/bin/prostrct create prod prod.st -blocksize 8192
Block size 必须是2的整数倍,一般是1024 / 2048 / 4096 / 8192中选一个,原则是OS File System Block Size的1-2倍。注意-blocksize参数必须放在最后。


三、数据库原始结构的拷贝:

用prostrct create创建的数据库是完全空的,用pro等命令是没法起来的,必须拷贝一个空的结构,比如:

#/mfg/dlc91/bin/procopy /mfg/dlc91/empty8 prod

选择empty多少,需要根据你创建的DB的Block size大小:
empty1  1024
empty2  2048
empty4  4096
empty8  8192

四、启动数据库导入结构文件:

# /mfg/dlc91/bin/pro prod
按F3激活菜单,选择Tools -> Data Dictionary
再选择Admin -> Load Data and Definitions -> Data Definitions
在提示对话框输入要导入的结构文件,比如prod.df

说明:如果是做DB refiling,那么一般.df文件是事先做好并保存在当前目录下的!

五、Bulkload数据:

# /mfg/dlc91/bin/proutil prod -C bulkload ./prod.fd -d ymd -yy 1950

说明:如果是做DB refiling,那么.fd文件和必须的.d文件一般事先准备就绪并保存在当前目录下。

六、索引重建:

# /mfg/dlc91/bin/proutil prod -C idxbuild all
为了获取更好的性能,通常加上-TB和-TM参数,比如:
# /mfg/dlc91/bin/proutil prod -C idxbuild all -TB 16 -TM 32
/*强烈推荐增加TB和TM参数,实际上占用很少的资源却大大减少了数据库索引重建的时间*/

******************************************************************