PowerDesigner将Name字段复制到Comment(生成数据库脚本时使用)

使用PowerDesigner生成数据库脚本时,由于设计的时候一般填写的都是Name字段,故Comment字段没有值。而生成数据库脚本时需要备注字段Comment,也就是说我们在生成数据库脚本之前需要将Name中的字符复制至Comment中。我们可以通过执行脚本的形式解决这个问题。

在PowerDesigner中使用方法为:
PowerDesigner->Tools->Execute Commands->Edit/Run Scripts

Name中内容复制到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

'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 
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

Name中内容复制到Comment,Comment有值则忽略(即不改变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 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 trim(tab.comment)="" then
tab.comment = tab.name
end if
Dim col 'running column
for each col in tab.columns 
if trim(col.comment)="" then 
col.comment= col.name
end if
next
end if
next

Dim view 'running view
for each view in folder.Views
if not view.isShortcut and trim(view.comment)="" 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

参考资料:https://blog.csdn.net/yl_sunmoon/article/details/128056467


觉得内容还不错?打赏个钢镚鼓励鼓励!!👍