powerdesigner逆向工程生成PDM时的列注释解决方案的补充

在《powerdesigner逆向工程生成PDM时的列注释解决方案》一文中,我介绍了如何在逆向工程中从现有数据库中生成PDM文件时将数据库中的Description直接带到PDM中,主要解释了我的解决思路,有些乱。有的朋友不是很清楚,在本文中再次补充一个清晰的思路,希望能给大家带来帮助。

总体思路是根据PD自带的模板修改而成。修改前请备份Sybase安装路径\Resource Files\DBMS文件夹。

 邀月使用的是Powerdesigner 15.3,数据库为SQL Server 2008 r2

步骤:

1、创建DBMS

 Powerdesigner界面-tools-Resources-DBMS,点击左上角的New,选择copy from templete,如果你的数据库是sql server 2005,选择系统自带的SQL server 2005,如果是sql server 2008,选择系统自带的sqlsv2k8.xdb。本例中是sql server 2008 r2,故选择sqlsv2k8.xdb,起一个新名字,如SQL2008_Mod_201105。

邀月工作室

2、建立数据源,逆向生成测试,顺利成功!

邀月工作室

此时再生成数据库脚本时,会自动将Comment中的中文注释带入到脚本中。

邀月工作室

美中不足的是Name还是英文,在一个包中查看表时,感觉怪怪的。

有两个解决办法:

3-1、改进脚本

Powerdesigner界面-Database-Edit Current DBMS

如下:本文以sql server 2008为例,sql server 2005类同。

将表的Name换为Comment

邀月工作室

将列的Name换为Comment

邀月工作室

此时生成的效果最为理想。

邀月工作室

3-2、利用vbs脚本完成。

Sybase安装路径\VB Scripts下新建Comments2Name.vbs,内容如下:

 
  
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 code 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
if len (tab.comment) <> 0 then
tab.name
= tab.comment
end if
On Error Resume Next
Dim col ' running column
for each col in tab.columns
if len (col.comment) <> 0 then
col.name
= col.comment
end if
On Error Resume Next
next
end if
next
end sub

在生成的PDM中, Powerdesigner界面-tools-Execute Cmmands-Edit/Run Scripts

在打开的界面中,左上角,选择打开,Ctrl+O,选取刚才的Comments2Name.vbs,并Run,效果同上。

邀月工作室

邀月工作室

转载于:https://www.cnblogs.com/downmoon/archive/2011/05/21/2053135.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值