PowerDesigner 把Comment写到name中 和把name写到Comment中 pd7以后版本可用

本文介绍如何使用VB脚本在PowerDesigner中自动同步表名和字段名的中文注释,包括从Name复制到Comment及从Comment复制到Name的方法。
<p>在使用PowerDesigner对数据库进行概念模型和物理模型设计时,一般在NAME或Comment中写中文,在Code中写英文。Name用来显
示,Code在代码中使用,但Comment中的文字会保存到数据库Table或Column的Comment中,当Name已经存在的时候,再写一次
Comment很麻烦,可以使用以下代码来解决这个问题:
</p>
<ul>
<li>代码一:<strong>将Name中的字符COPY至Comment中</strong>
<br><br><p>Option Explicit <br>
ValidationMode = True <br>
InteractiveMode = im_Batch</p>
<p>Dim mdl ' the current model</p>
<p>' get the current active model <br>
Set mdl = ActiveModel <br>
If (mdl Is Nothing) Then <br>
MsgBox "There is no current Model " <br>
ElseIf Not mdl.IsKindOf(PdPDM.cls_Model) Then <br>
MsgBox "The current model is not an Physical Data model. " <br>
Else <br>
ProcessFolder mdl <br>
End If</p>
<p>' This routine copy name into comment for each table, each column and each view <br>
' of the current folder <br>
Private sub ProcessFolder(folder) <br>
Dim Tab 'running table <br>
for each Tab in folder.tables <br>
if not tab.isShortcut then <br>
tab.comment = tab.name <br>
Dim col ' running column <br>
for each col in tab.columns <br>
col.comment= col.name <br>
next <br>
end if <br>
next</p>
<p> Dim view 'running view <br>
for each view in folder.Views <br>
if not view.isShortcut then <br>
view.comment = view.name <br>
end if <br>
next</p>
<p> ' go into the sub-packages <br>
Dim f ' running folder <br>
For Each f In folder.Packages <br>
if not f.IsShortcut then <br>
ProcessFolder f <br>
end if <br>
Next <br>
end sub</p>
</li>
</ul>
<p>--------------------------------------------</p>
<p> 另外在使用REVERSE ENGINEER从数据库反向生成PDM的时候,PDM中的表的NAME和CODE事实上都是CODE,为了把NAME替换为数据库中Table或Column的中文Comment,可以使用以下脚本:</p>
<ul>
<li>代码二:<strong>将Comment中的字符COPY至Name中 </strong>
<p><br>
Option Explicit <br>
ValidationMode = True <br>
InteractiveMode = im_Batch</p>
<p>Dim mdl ' the current model</p>
<p>' get the current active model <br>
Set mdl = ActiveModel <br>
If (mdl Is Nothing) Then <br>
MsgBox "There is no current Model " <br>
ElseIf Not mdl.IsKindOf(PdPDM.cls_Model) Then <br>
MsgBox "The current model is not an Physical Data model. " <br>
Else <br>
ProcessFolder mdl <br>
End If</p>
<p>Private sub ProcessFolder(folder) <br>
On Error Resume Next<br>
Dim Tab 'running table <br>
for each Tab in folder.tables <br>
if not tab.isShortcut then <br>
tab.name = tab.comment<br>
Dim col ' running column <br>
for each col in tab.columns <br>
if col.comment="" then<br>
else<br>
col.name= col.comment <br>
end if<br>
next <br>
end if <br>
next</p>
<p> Dim view 'running view <br>
for each view in folder.Views <br>
if not view.isShortcut then <br>
view.name = view.comment <br>
end if <br>
next</p>
<p> ' go into the sub-packages <br>
Dim f ' running folder <br>
For Each f In folder.Packages <br>
if not f.IsShortcut then <br>
ProcessFolder f <br>
end if <br>
Next <br>
end sub</p>
</li>
</ul>
<p>-----------------------------------------------------------------------</p>
<p>以上两段代码都是VB脚本,在PowerDesigner中使用方法为:</p>
<p> PowerDesigner->Tools->Execute Commands->Edit/Run Scripts</p>
<p>将代码Copy进去执行就可以了,是对整个CDM或PDM进行操作</p>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值