power desinger 学习笔记<八> - Oracle-fans - 博客园

转-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. Option   Explicit   
  2. ValidationMode   =   True   
  3. InteractiveMode   =   im_Batch  
  4. Dim   mdl   
  5. Set   mdl   =   ActiveModel   
  6. If   (mdl   Is   Nothing)   Then   
  7.       MsgBox   "There   is   no   current   Model "   
  8. ElseIf   Not   mdl.IsKindOf(PdPDM.cls_Model)   Then   
  9.       MsgBox   "The   current   model   is   not   an   Physical   Data   model. "   
  10. Else   
  11.       ProcessFolder   mdl   
  12. End   If  
  13. Private   sub   ProcessFolder(folder)   
  14. Dim   Tab   
  15.       for   each   Tab   in   folder.tables   
  16.             if   not   tab.isShortcut   then   
  17.                   tab.comment   =   tab.name   
  18. Dim   col   
  19.                   for   each   col   in   tab.columns   
  20.                         col.comment=   col.name   
  21.                   next   
  22.             end   if   
  23.       next  
  24. Dim   view   
  25.       for   each   view   in   folder.Views   
  26.             if   not   view.isShortcut   then   
  27.                   view.comment   =   view.name   
  28.             end   if   
  29.       next  
  30. Dim   f   
  31. For   Each   f   In   folder.Packages   
  32.             if   not   f.IsShortcut   then   
  33.                   ProcessFolder   f   
  34.             end   if   
  35. Next   
  36. end   sub  


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

    1.   
    2. Option   Explicit   
    3. ValidationMode   =   True   
    4. InteractiveMode   =   im_Batch  
    5.   
    6. Dim   mdl   
    7.   
    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   
    20.       for   each   Tab   in   folder.tables   
    21.             if   not   tab.isShortcut   then   
    22.                   tab.name   =   tab.comment  
    23.                   Dim   col   
    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   
    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.       
    41.       Dim   f   
    42.       For   Each   f   In   folder.Packages   
    43.             if   not   f.IsShortcut   then   
    44.                   ProcessFolder   f   
    45.             end   if   
    46.       Next   
    47. end   sub  
    48.     原帖地址:http://blog.csdn.net/smartsmile2012/article/details/7922863
创建时间:2021-09-15 14:08
浏览量:0