PowerDesigner中name属性与comment属性相互转换

本文介绍如何在 PowerDesigner 中高效地管理数据库表和字段的中文注释,包括两个实用的 VB 脚本:一是将 Name 复制到 Comment,二是将 Comment 复制到 Name。适用于从数据库反向生成 PDM 模型的情况。
摘要由CSDN通过智能技术生成

在使用PowerDesigner对数据库进行概念模型和物理模型设计时,一般在NAME或Comment中写中文,在Code中写英文。Name用来显 示,Code在代码中使用,但Comment中的文字会保存到数据库Table或Column的Comment中,当Name已经存在的时候,再写一次 Comment很麻烦,可以使用以下代码来解决这个问题。

代码一:将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   Active   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



注意:如果不想把以前写的注释给覆盖掉 ,那么把上面的红色标记处  改成:   col.comment=   col.name    + col.comment  那么注释就是追加的了
 
 另外在使用REVERSE ENGINEER从数据库反向生成PDM的时候,PDM中的表的NAME和CODE事实上都是CODE,为了把NAME替换为数据库中Table或Column的中文Comment,可以使用以下脚本: 


代码二:将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   Active   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



以上两段代码都是VB脚本,在PowerDesigner中使用方法为: 
    PowerDesigner->Tools->Execute Commands->Edit/Run Scripts 
将代码Copy进去执行就可以了,是对整个CDM或PDM进行操作 

转载于:https://my.oschina.net/liweigov/blog/184386

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值