PowerDesigner 把Comment写到name中 和把name写到Comment中 pd7以后版本可用
在使用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进行操作
posted on 2013-08-01 17:38 阳光总在风雨后001 阅读(158) 评论(0) 收藏 举报
 
                    
                 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号