PowerDesigner 把Comment复制到name中和把name复制到Comment
在使用PowerDesigner对数据库进行概念模型和物理模型设计时,一般在NAME或Comment中写中文,在Code中写英文。Name用来显 示,Code在代码中使用,但Comment中的文字会保存到数据库Table或Column的Comment中,当Name已经存在的时候,再写一次 Comment很麻烦,可以使用以下代码来解决这个问题
在PowerDesigner中使用方法为:
PowerDesigner->Tools->Execute Commands->Edit/Run Scripts
将代码Copy进去执行就可以了,是对整个CDM或PDM进行操作
1 '代码一:将Name中的字符COPY至Comment中 2 3 4 Option Explicit 5 ValidationMode = True 6 InteractiveMode = im_Batch 7 8 Dim mdl ' the current model 9 10 ' get the current active model 11 Set mdl = ActiveModel 12 If (mdl Is Nothing) Then 13 MsgBox "There is no current Model " 14 ElseIf Not mdl.IsKindOf(PdPDM.cls_Model) Then 15 MsgBox "The current model is not an Physical Data model. " 16 Else 17 ProcessFolder mdl 18 End If 19 20 ' This routine copy name into comment for each table, each column and each view 21 ' of the current folder 22 Private sub ProcessFolder(folder) 23 Dim Tab 'running table 24 for each Tab in folder.tables 25 if not tab.isShortcut then 26 tab.comment = tab.name 27 Dim col ' running column 28 for each col in tab.columns 29 col.comment= col.name 30 next 31 end if 32 next 33 34 Dim view 'running view 35 for each view in folder.Views 36 if not view.isShortcut then 37 view.comment = view.name 38 end if 39 next 40 41 ' go into the sub-packages 42 Dim f ' running folder 43 For Each f In folder.Packages 44 if not f.IsShortcut then 45 ProcessFolder f 46 end if 47 Next 48 end sub
1 '代码二:将Comment中的字符COPY至Name中 2 3 Option Explicit 4 ValidationMode = True 5 InteractiveMode = im_Batch 6 7 Dim mdl ' the current model 8 9 ' get the current active model 10 Set mdl = ActiveModel 11 If (mdl Is Nothing) Then 12 MsgBox "There is no current Model " 13 ElseIf Not mdl.IsKindOf(PdPDM.cls_Model) Then 14 MsgBox "The current model is not an Physical Data model. " 15 Else 16 ProcessFolder mdl 17 End If 18 19 Private sub ProcessFolder(folder) 20 On Error Resume Next 21 Dim Tab 'running table 22 for each Tab in folder.tables 23 if not tab.isShortcut then 24 tab.name = tab.comment 25 Dim col ' running column 26 for each col in tab.columns 27 if col.comment="" then 28 else 29 col.name= col.comment 30 end if 31 next 32 end if 33 next 34 35 Dim view 'running view 36 for each view in folder.Views 37 if not view.isShortcut then 38 view.name = view.comment 39 end if 40 next 41 42 ' go into the sub-packages 43 Dim f ' running folder 44 For Each f In folder.Packages 45 if not f.IsShortcut then 46 ProcessFolder f 47 end if 48 Next 49 end sub