在应用 PowerDesigner 做物理模型设计时,name 个别会示意字段阐明,code 示意列明,导致生成的 DML 语句中 comment 为空, 能够应用以下代码来解决这个问题:
将 Name 中的字符复制至 Comment 中
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 中的字符复制至 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
脚本执行形式:Tools->Execute Commands->Edit/Run Scripts
PowerDesigner 中默认不显示 comment, 能够设置显示:
1.Tools->Display Preferences...
2. 利用到所有表