powerdesigner中name属性变为注释

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

  1. Option   Explicit    
  2. ValidationMode   =   True    
  3. InteractiveMode   =   im_Batch   
  4.   
  5. Dim   mdl   '   the   current   model   
  6.   
  7. '   get   the   current   active   model    
  8. Set   mdl   =   ActiveModel    
  9. If   (mdl   Is   Nothing)   Then    
  10.       MsgBox   "There   is   no   current   Model "    
  11. ElseIf   Not   mdl.IsKindOf(PdPDM.cls_Model)   Then    
  12.       MsgBox   "The   current   model   is   not   an   Physical   Data   model. "    
  13. Else    
  14.       ProcessFolder   mdl    
  15. End   If   
  16.   
  17. '   This   routine   copy   name   into   comment   for   each   table,   each   column   and   each   view    
  18. '   of   the   current   folder    
  19. Private   sub   ProcessFolder(folder)    
  20.       Dim   Tab   'running     table    
  21.       for   each   Tab   in   folder.tables    
  22.             if   not   tab.isShortcut   then    
  23.                   tab.comment   =   tab.name    
  24.                   Dim   col   '   running   column    
  25.                   for   each   col   in   tab.columns    
  26.                         col.comment=   col.name    
  27.                   next    
  28.             end   if    
  29.       next   
  30.   
  31.       Dim   view   'running   view    
  32.       for   each   view   in   folder.Views    
  33.             if   not   view.isShortcut   then    
  34.                   view.comment   =   view.name    
  35.             end   if    
  36.       next   
  37.   
  38.       '   go   into   the   sub-packages    
  39.       Dim   f   '   running   folder    
  40.       For   Each   f   In   folder.Packages    
  41.             if   not   f.IsShortcut   then    
  42.                   ProcessFolder   f    
  43.             end   if    
  44.       Next    
  45. end   sub 

注意:如果不想把以前写的注释给覆盖掉 ,那么把上面的红色标记处  改成:   col.comment=   col.name    + col.comment  那么注释就是追加的了

 

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

代码二:将Comment中的字符COPY至Name中
  1. Option   Explicit    
  2. ValidationMode   =   True    
  3. InteractiveMode   =   im_Batch   
  4.   
  5. Dim   mdl   '   the   current   model   
  6.   
  7. '   get   the   current   active   model    
  8. Set   mdl   =   ActiveModel    
  9. If   (mdl   Is   Nothing)   Then    
  10.       MsgBox   "There   is   no   current   Model "    
  11. ElseIf   Not   mdl.IsKindOf(PdPDM.cls_Model)   Then    
  12.       MsgBox   "The   current   model   is   not   an   Physical   Data   model. "    
  13. Else    
  14.       ProcessFolder   mdl    
  15. End   If   
  16.   
  17. Private   sub   ProcessFolder(folder)    
  18. On Error Resume Next   
  19.       Dim   Tab   'running     table    
  20.       for   each   Tab   in   folder.tables    
  21.             if   not   tab.isShortcut   then    
  22.                   tab.name   =   tab.comment   
  23.                   Dim   col   '   running   column    
  24.                   for   each   col   in   tab.columns    
  25.                   if col.comment="" then   
  26.                   else  
  27.                         col.name=   col.comment    
  28.                   end if  
  29.                   next    
  30.             end   if    
  31.       next   
  32.   
  33.       Dim   view   'running   view    
  34.       for   each   view   in   folder.Views    
  35.             if   not   view.isShortcut   then    
  36.                   view.name   =   view.comment    
  37.             end   if    
  38.       next   
  39.   
  40.       '   go   into   the   sub-packages    
  41.       Dim   f   '   running   folder    
  42.       For   Each   f   In   folder.Packages    
  43.             if   not   f.IsShortcut   then    
  44.                   ProcessFolder   f    
  45.             end   if    
  46.       Next    
  47. end   sub 

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值