PowerDesigner 把Comment/name 互转
Posted 旋转的梦
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PowerDesigner 把Comment/name 互转相关的知识,希望对你有一定的参考价值。
转载:https://www.cnblogs.com/cxd4321/archive/2009/03/07/1405475.html
在使用PowerDesigner对数据库进行概念模型和物理模型设计时,一般在NAME或Comment中写中文,在Code中写英文。Name用来显 示,Code在代码中使用,但Comment中的文字会保存到数据库Table或Column的Comment中,当Name已经存在的时候,再写一次 Comment很麻烦,可以使用以下代码来解决这个问题:
- 代码一:将Name中的字符COPY至Comment中
Option Explicit
ValidationMode = True
InteractiveMode = im_BatchDim 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
nextDim 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中的字符COPY至Name中
Option Explicit
ValidationMode = True
InteractiveMode = im_BatchDim 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 IfPrivate 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
nextDim 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
-----------------------------------------------------------------------
以上两段代码都是VB脚本,在PowerDesigner中使用方法为:
PowerDesigner->Tools->Execute Commands->Edit/Run Scripts
将代码Copy进去执行就可以了,是对整个CDM或PDM进行操作
以上是关于PowerDesigner 把Comment/name 互转的主要内容,如果未能解决你的问题,请参考以下文章
PowerDesigner 把Comment/name 互转
把mysql脚本或其他数据库脚本导入Powerdesigner