打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
PowerDesigner技巧集1
  • NameCode同步的问题

    PowerDesigner中,修改了某个字段的name,其code也跟着修改,这个问题很讨厌,因为一般来说,name是中文的,code是字段名。

    解决方法如下:

    1、选择Tools->GeneralOptions...菜单,出现General Options对话框。

    2、从Category中选择Dialog项。

    3、取消右边"Name to Code mirroring"复选框。如下图:

     

  • 批量根据对象的name生成comment的脚本

    执行方法:PD12 à Open PDM à Tools à Execute Commands à Run Script

    这是网络上下载的脚本

    1. Option Explicit  
    2. ValidationMode = True  
    3. InteractiveMode = im_Batch  
    4.   
    5. Dim mdl ' the current model  
    6.   
    7. 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 code 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  


  • 但是这个脚本有点不足之处:就是将name的内容完全覆盖在comments上。有一些我写好的comments会被覆盖了,这样很不爽。因此,在原脚本的基础上,我判断comments的长度大于name,不覆盖。这样自己写的comments就会保留下来。脚本。在表、视图的基础了,增加用户、表空间、序列等数据库对象的注释。

    1. Option Explicit  
    2. ValidationMode = True  
  • InteractiveMode = im_Batch  
  •   
  • Dim mdl ' the current model   
  •   
  • ' get the current active model   
  • Set mdl = ActiveModel  
  • If (mdl Is NothingThen  
  •    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 code 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  
  •          if not Len(tab.comment) > Len(tab.name) then  
  •             tab.comment = tab.name  
  •          end if  
  •          Dim col ' running column   
  •          for each col in tab.columns  
  •             if not Len(col.comment) > Len(col.name) then  
  •                col.comment= col.name  
  •             end if  
  •          next  
  •       end if  
  •    next  
  •   
  •    Dim view 'running view   
  •    for each view in folder.Views  
  •       if not view.isShortcut then  
  •          if not Len(view.comment) > Len(view.name) then  
  •             view.comment = view.name  
  •          end if  
  •       end if  
  •    next  
  •   
  •    Dim sequence 'running sequence   
  •    for each sequence in folder.Sequences  
  •       if not sequence.isShortcut then  
  •          if not Len(sequence.comment) > Len(sequence.name) then  
  •             sequence.comment = sequence.name  
  •          end if  
  •       end if  
  •    next  
  •   
  •    Dim myuser 'running user   
  •    for each myuser in folder.Users  
  •       if not myuser.isShortcut then  
  •          if not Len(myuser.comment) > Len(myuser.name) then  
  •             myuser.comment = myuser.name  
  •          end if  
  •       end if  
  •    next     
  •   
  •    Dim tablespace 'running tablespace   
  •    for each tablespace in folder.Tablespaces  
  •       if not tablespace.isShortcut then  
  •          if not Len(tablespace.comment) > Len(tablespace.name) then  
  •             tablespace.comment = tablespace.name  
  •          end if  
  •       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  
  • 本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
    打开APP,阅读全文并永久保存 查看更多类似文章
    猜你喜欢
    类似文章
    【热】打开小程序,算一算2024你的财运
    PowerDesigner comment2name name2comment
    Power Designer 15 数据库逆向工程
    PowerDesigner11学习点滴_骨骨学习笔记
    PowerDesiger16与MySQL操作互转
    PowerDesigner 创建表格及导出SQL语句
    VB 遍历指定目录及子目录所有文件函数
    更多类似文章 >>
    生活服务
    热点新闻
    分享 收藏 导长图 关注 下载文章
    绑定账号成功
    后续可登录账号畅享VIP特权!
    如果VIP功能使用有故障,
    可点击这里联系客服!

    联系客服