zoukankan      html  css  js  c++  java
  • powerdesigner逆向工程生成PDM时的列注释解决方案的补充

    在《powerdesigner逆向工程生成PDM时的列注释解决方案》一文中,我介绍了如何在逆向工程中从现有数据库中生成PDM文件时将数据库中的Description直接带到PDM中,主要解释了我的解决思路,有些乱。有的朋友不是很清楚,在本文中再次补充一个清晰的思路,希望能给大家带来帮助。

    总体思路是根据PD自带的模板修改而成。修改前请备份Sybase安装路径\Resource Files\DBMS文件夹。

     邀月使用的是Powerdesigner 15.3,数据库为SQL Server 2008 r2

    步骤:

    1、创建DBMS

     Powerdesigner界面-tools-Resources-DBMS,点击左上角的New,选择copy from templete,如果你的数据库是sql server 2005,选择系统自带的SQL server 2005,如果是sql server 2008,选择系统自带的sqlsv2k8.xdb。本例中是sql server 2008 r2,故选择sqlsv2k8.xdb,起一个新名字,如SQL2008_Mod_201105。

    邀月工作室

    2、建立数据源,逆向生成测试,顺利成功!

    邀月工作室

    此时再生成数据库脚本时,会自动将Comment中的中文注释带入到脚本中。

    邀月工作室

    美中不足的是Name还是英文,在一个包中查看表时,感觉怪怪的。

    有两个解决办法:

    3-1、改进脚本

    Powerdesigner界面-Database-Edit Current DBMS

    如下:本文以sql server 2008为例,sql server 2005类同。

    将表的Name换为Comment

    邀月工作室

    将列的Name换为Comment

    邀月工作室

    此时生成的效果最为理想。

    邀月工作室

    3-2、利用vbs脚本完成。

    Sybase安装路径\VB Scripts下新建Comments2Name.vbs,内容如下:

    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 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 len(tab.comment) <> 0 then
    tab.name
    = tab.comment
    end if
    On Error Resume Next
    Dim col 'running column
    for each col in tab.columns
    if len(col.comment) <>0 then
    col.name
    =col.comment
    end if
    On Error Resume Next
    next
    end if
    next
    end sub

    在生成的PDM中, Powerdesigner界面-tools-Execute Cmmands-Edit/Run Scripts

    在打开的界面中,左上角,选择打开,Ctrl+O,选取刚才的Comments2Name.vbs,并Run,效果同上。

    邀月工作室

    邀月工作室

  • 相关阅读:
    C# a == b ? c :d 表示的意思
    Unity脚本的生命周期 同一脚本/不同脚本/游戏对象激没激活/脚本激没激活,几种情况下的Awake,OnEnable,Start的执行顺序
    算法复习之排序
    算法 复习
    第二章 寄存器
    第一章
    机械学习中的正负样本
    linux安装py3.6
    git管理策略
    jenkin报错hudson.plugins.git.GitExcept
  • 原文地址:https://www.cnblogs.com/downmoon/p/2053135.html
Copyright © 2011-2022 走看看