博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【转载】PowerDesigner逆向工程
阅读量:5959 次
发布时间:2019-06-19

本文共 6210 字,大约阅读时间需要 20 分钟。

原文链接:

1. 破解及安装

下载地址

地址一:

地址二:

1.安装Sysbase PowerDesigner 15.1。

2.拷贝pdflm15.dll到安装目录下。

3.重新启动计算机。

汉化(可选)

1.备份根目录下要汉化的文件。

2.拷贝汉化文件到安装目录下。

对于已有PD数据库文件,直接看第3步。

2. 对数据库进行反向工程

新建PDM(Physical Data Model).

1. 选择New Model(新模型),即打开创建模型选项窗口,如下图:

2. 选择Model types,在Model types的列表中选择Physical Data Model,最后选择Physical Diagram。在Model Name名称输入PDM的名称,DBMS选择数据库类型,选择”Share the DBMS definition。”

3. 单击”OK”,即完成PDM创建过程。

建立数据库连接

菜单”Database”à”Connect…”,弹出如下界面

没有ODBC数据源,则配置数据源。

(SQL2005时注意)在配置ODBC的时候,连点两个“下一步”按钮后,在第3个页面中将“更改默认的数据库为”复选框选中,并从数据库列表中选中你要Reverse的数据库,就会出现这个问题。如果取消“更改默认的数据库为”复选框的选中状态,问题解决!!!

而MSSQL2000时需要选中,而且要指定默认的数据库。

选择”ODBC machine data source”,点击”Configure”(配置过程省略)

对数据库进行反向工程

数据库连接建立完成后选择”Database”à”Update Model from Database…”

点击确定。

在MSSQL2005中,由于没有默认数据库,需要选择数据库。

在此对话框选择注意选择需要的视图、触发器和存储过程。

点击”OK”则对数据库进行反向工程。


个人补充:

1. PDM和CDM转换:

在【file】菜单中,从数据库或者sql脚本文件生成PDM

选择【tools】

-》选择【generate conceptual data model...】-转换为CDM

在CDM工作区时,选择菜单【tools】-》【generate physical model...】生成PDM

在PDM工作区时,选择菜单【database】-》【geerate database】生成数据库或SQL脚本文件

2. 遇到一个问题,如下:

Unable to list the users.

解决方案:

      步骤:选择菜单栏中的Database -> Change Current DBMS ,给DBMS选择Oracle Version 9i2。确定就搞定了;


3. 修改数据库信息

数据库

双击左侧的PDM,弹出如下对话框,修改数据库信息。

数据表

字段

设置主键(Primary)在自定义列性息中,选择Primary。

设置索引(Index)

设置关键字(Key)

修改字段默认值

在上图中,选择需要修改默认值的列,点击第一个小图标(Properties),在Standard Checks页中的Default输入默认值。

自定义列信息

在上图中,点击倒数第二个小图标(customize Column and Filter).

4. Report的生成环境

有2中方法生成报表,我们使用第二种方法输出报表。

新建一个报表

菜单Report--àReport…

点击第二个图标New Report.

输入报表名称,语言栏选择Simplified Chinese,点击OK,开始设计新报表。

4.如下图:我们左右2个区,Aavailable区域中选择你想要在WORD文档中展示的东东,这里我们选择List of Tables,和List of Table Columns[数据表格信息],当然你也可以加别的一些元素。

完成报表设计之后,保存。

在主窗口菜单选择,Report--àGenerate Report…

设置好相应设置,点击OK。

就生成了中文的RTF数据库设计文档了。

从报表模板中创建报表

将报表模板MyReportTemp.rtp,拷贝到安装路径下的\Resource Files\Report Templates目录下。菜单Report--àGenerate Report--àReport Template,选择报表模板,做好相应设置,点击OK。

5. 从PDM中创建和修改数据库

创建数据库

菜单Database--àGenerater Database。

注意问题,在Option页中,去掉User的选择框。(因为用的默认用户dbo已存在,而且不能删除)

修改数据库

菜单Database--àUpdate Model Change to Database…

选号设置,生成修改数据库脚本,执行脚本修改数据库。

6. 问题

中文报表模板输出RTF有乱码

选择中文模板,右键选择属性(Properties),在RTF Format页中的Template选择None.

PD不支持SQL Server 2005,怎么办

前两天试用PD12的时候遇到一个奇怪的事情,不知道算不算是PD12的BUG。事情的经过是这样的:

后台数据库从SQL2000升级到SQL Server 2005(简体中文版),由于PD11不支持SQL2005,所以从Sybase下载了PD12的试用版,结果发现PD12不能Reverse数据库!

PD能够作反向工程的,有两个地方,(1)File - Reverse Engineer - Database,这个功能主要用于将数据库结构反向工程为PDM设计文档,一般只用一次,以后的设计变更就直接在PDM上做了。(2)打开一个PDM之后,点击菜单Database - Reverse Engineer Database,这个功能主要是用来比较PDM文档与实际数据库之间的结构上的差异,便于两者同步。

现在数据库换成SQL2005、PD换成V12以后(Sybase网站上有两个版本,12.0和12.1,我都试了,都有相同的毛病),Reverse的时候都提示“Unable to list Tables”,不能列出SQL2005中有哪些用户表!直接后果就是无法比较PDM设计文档和SQL2005数据库的结构差异!

胖子刘

2006.10.16

====================================================================

在一个非常机缘巧合的情况下,我找到了问题的解决办法。

上面的问题是怎么产生的呢?

在配置ODBC的时候,连点两个“下一步”按钮后,在第3个页面中将“更改默认的数据库为”复选框选中,并从数据库列表中选中你要Reverse的数据库,就会出现这个问题。

如果取消“更改默认的数据库为”复选框的选中状态,问题解决!!!

同样的操作用在PD11和SQL2000环境下就没问题,所以当这对搭档升级为PD12和SQL2005之后,如果还沿用以前的习惯就会出错。不知道算不算是BUG!!!

前车之鉴,与大家共享。

胖子刘

2006.10.16

7. 其他技巧

取消name和code联动

在修改name的时候,code的值将跟着变动,很不方便。修改方法:PowerDesign中的选项菜单里修改,在[Tool]-->[General Options]->[Dialog]->[Operating modes]->[Name to Code mirroring],这里默认是让名称和代码同步,将前面的复选框去掉就行了。如图:

Name和Comment关联

在使用PowerDesigner对数据库进行概念模型和物理模型设计时,一般在NAME或Comment中写中文,在Code中写英文。Name用来显 示,Code在代码中使用,但Comment中的文字会保存到数据库Table或Column的Comment中,当Name已经存在的时候,再写一次 Comment很麻烦,可以使用以下代码来解决这个问题:

· 代码一:将Name中的字符COPY至Comment中

· '******************************************************************************

'*   File:           name2comment.vbs
'*   Purpose:     Database   generation   cannot   use   object   names   anymore  
'                         in   version   7   and   above.
'                         It   always   uses   the   object   codes.
'
'                         In   case   the   object   codes   are   not   aligned   with   your  
'                         object   names   in   your   model,   this   script   will   copy  
'                         the   object   Name   onto   the   object   Comment   for  
'                         the   Tables   and   Columns.
'
'*   Title:        
'*   Version:     1.0
'*   Company:     Sybase   Inc.  
'******************************************************************************

Option   Explicit

ValidationMode   =   True
InteractiveMode   =   im_Batch

Dim   mdl   '   the   current   model

'   get   the   current   active   model

Set   mdl   =   ActiveModel
If   (mdl   Is   Nothing)   Then
      MsgBox   "There   is   no   current   Model "
ElseIf   Not   mdl.IsKindOf(PdPDM.cls_Model)   Then
      MsgBox   "The   current   model   is   not   an   Physical   Data   model. "
Else
      ProcessFolder   mdl
End   If

'   This   routine   copy   name   into   comment   for   each   table,   each   column   and   each   view

'   of   the   current   folder
Private   sub   ProcessFolder(folder)
      Dim   Tab   'running     table
      for   each   Tab   in   folder.tables
            if   not   tab.isShortcut   then
                  tab.comment   =   tab.name
                  Dim   col   '   running   column
                  for   each   col   in   tab.columns
                        col.comment=   col.name
                  next
            end   if
      next

      Dim   view   'running   view

      for   each   view   in   folder.Views
            if   not   view.isShortcut   then
                  view.comment   =   view.name
            end   if
      next

      '   go   into   the   sub-packages

      Dim   f   '   running   folder
      For   Each   f   In   folder.Packages
            if   not   f.IsShortcut   then
                  ProcessFolder   f
            end   if
      Next
end   sub

--------------------------------------------

另外在使用REVERSE ENGINEER从数据库反向生成PDM的时候,PDM中的表的NAME和CODE事实上都是CODE,为了把NAME替换为数据库中Table或Column的中文Comment,可以使用以下脚本:

· 代码二:将Comment中的字符COPY至Name中

Option   Explicit

ValidationMode   =   True
InteractiveMode   =   im_Batch

Dim   mdl   '   the   current   model

'   get   the   current   active   model

Set   mdl   =   ActiveModel
If   (mdl   Is   Nothing)   Then
      MsgBox   "There   is   no   current   Model "
ElseIf   Not   mdl.IsKindOf(PdPDM.cls_Model)   Then
      MsgBox   "The   current   model   is   not   an   Physical   Data   model. "
Else
      ProcessFolder   mdl
End   If

Private   sub   ProcessFolder(folder)

On Error Resume Next
      Dim   Tab   'running     table
      for   each   Tab   in   folder.tables
            if   not   tab.isShortcut   then
                  tab.name   =   tab.comment
                  Dim   col   '   running   column
                  for   each   col   in   tab.columns
                  if col.comment="" then
                  else
                        col.name=   col.comment
                  end if
                  next
            end   if
      next

      Dim   view   'running   view

      for   each   view   in   folder.Views
            if   not   view.isShortcut   then
                  view.name   =   view.comment
            end   if
      next

      '   go   into   the   sub-packages

      Dim   f   '   running   folder
      For   Each   f   In   folder.Packages
            if   not   f.IsShortcut   then
                  ProcessFolder   f
            end   if
      Next
end   sub

-----------------------------------------------------------------------

以上两段代码都是VB脚本,在PowerDesigner中使用方法为:

    PowerDesigner->Tools->Execute Commands->Edit/Run Scripts

将代码Copy进去执行就可以了,是对整个CDM或PDM进行操作

8. 缺点

1.由于只是建模工具,不能生成默认数据。

posted on 2011-06-07 10:55 阅读(1134) 评论(0)

转载地址:http://equax.baihongyu.com/

你可能感兴趣的文章
关于Exchange Server 2010中无法装入指定的数据的解决方法
查看>>
数据链路层的主要功能与服务
查看>>
Exchange server 2016 无人值守安装
查看>>
使用组策略配置Windows 7的高级防火墙
查看>>
ZoneMinder配置与使用
查看>>
Enterprise Library 3.0 体验(3):使用配置文件的Validation Application Block
查看>>
程序员,请不要抢系统管理员的饭碗
查看>>
Oracle并行计算
查看>>
ftp网络服务的搭建和配置
查看>>
强化管理远程分支机构利器之coreRODC[为企业部署Windows Server 2008系列九]
查看>>
管理Windows Server Core服务器共享文件夹
查看>>
搭建MongoDB主从复制(Master-Slave)
查看>>
net类库中发送电子邮件的方法总结
查看>>
Mybatis like查询的写法
查看>>
寻找泄漏源 密封企业敏感数据
查看>>
Jigloo 开发 SWT 的入门教程
查看>>
HTML5 学习(1) -- 介绍
查看>>
SQL 必知必会·笔记<17>使用存储过程
查看>>
Linux上的SCWS安装与使用(包括PHP扩展)
查看>>
spark rdd saveAsTextFile保存为文件
查看>>