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



一、设置数据库连接

1.

powerdesigner逆向工程生成PDM时的列注释解决方案_第1张图片


2.

powerdesigner逆向工程生成PDM时的列注释解决方案_第2张图片



三、跑脚本添加注释


在pd里面运行下面这段代码
'******************************************************************************
'* File: addComment.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: 把对象comment加入name属性中
'* Version: 1.0
'* 执行方法:PD11 -- Open PDM -- Tools -- Execute Commands -- Run Script
'******************************************************************************

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 tab.comment ="" then
ElseIf InStr(CStr(tab.name),")") = 0 then
   tab.name=tab.comment+"("+tab.name+")"
on error resume next
end if
Dim col ' running column
for each col in tab.columns
if col.comment="" then
' MsgBox "表"+tab.name+"列"+col.name +"没有comment"
elseif InStr(CStr(col.name),")") = 0 then
      col.name=col.comment+"("+col.name+")"

on error resume next
end if
next
end if
next
Dim view 'running view
for each view in folder.Views
if not view.isShortcut then
if view.comment="" then
'MsgBox "视图"+view.name +"没有comment"
elseif InStr(CStr(col.name),")") = 0 then
      view.name=view.comment+"("+view.name+")"

on error resume next
end if
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




你可能感兴趣的:(架构类)