【金沙国际唯一官网网址】PowerDesigner 把Comment复制到name夹钟把name复制到Comment

Code在代码中使用,一般在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中  

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  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  
   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 另外在使用REVERSE ENGINEER从数据库反向生成PDM的时候,PDM中的表的NAME和CODE事实上都是CODE,为了把NAME替换为数据库中Table或Column的中文Comment,可以使用以下脚本

2.'代码二:将Comment中的字符COPY至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 

Private  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  
   next 

   Dim  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