zoukankan      html  css  js  c++  java
  • PowerDesigner从数据库生实体成到PD中,power designer逆向工程

    第一步,打击DATABASE菜单。

    第二步:弹出Configure Data Connections窗口

     

    第三步,选择系统数据源。

    第四步,选择你需要的数据库。

    第五步:进行数据库的IP地址和SA账号的设置。

    可以附加数据库,也可以在原来的数据库中继续新建。

    第六步,直接进行,并进行测试。

    点击测试数据源,会弹出测试成功的提示。

    至此建了一个与数据库SQL SERVER 2005之间ODBC连接。

    二、

    在用powerdesigner逆向工程生成PDM时,列注释(ColumnComment)始终无法生成,历经数小时的探索,找到一个折衷的方法,现分享如下。并希望有高手指点更好的方法。

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

    方法如下:

    1、在PowerDesigner界面-File-Reverse Engineer-Database,然后选择一个DBMS,我这里选取一个由系统默认的SQL Server 2008 DBMS修改而来的SQL_2008_MyDefine。

    邀月工作室

    选好odbc,输入正确的连接串,选择数据库及表。

    邀月工作室

    生成效果:Name为英文,且Comment列为空。

    邀月工作室

    而我们希望的是Name列为中文,Comment为中文。

    查看了下在线帮助,发现在SQL_2008_MyDefine::Script\Objects\Column\SqlListQuery下的Value值如下:

     邀月工作室

    View Code

    注意该值中上面是PDM对应的列名,下面是从SQL数据库中取到的相关属性值。其中“

    (selectconvert(varchar(8000), value) from
    ::fn_listextendedproperty(
    NULL, 'user', u.name, 'table', o.name, 'column', c.name)
    where name ='MS_Description') as colnE,

    ”是可以取到Comment值的,可是生成的PDM为什么Comment列为空呢?尝试修改该SQL语句,将语句提取出来,也可以获取结果:

    View Code

    后来发现,直接用生成表的SQL,而不是用数据库就可以生成注释。如下图:

    邀月工作室

    但字段类型全乱了。

    邀月工作室

    难道Powerdesigner真的这么弱吗?google了一下,看到官方文档:

    http://manuals.sybase.com/onlinebooks/group-pd/pdd1100e/advanced/@Generic__BookTextView/1302;hf=0

    里面有关于SqlListQuery的解释。

    再看看上面的SQL语句,突然想到,既然可以在SQL查询出结果,那么出错一定在生成PDM的时候,

    在SQL_2008_MyDefine::Script\Objects\Column中看到这么一段:

    The following system variables are available:
    (parent
    table items are also available for columns)
    "COLNNAME"
    // name of the column
    "COLNCODE"
    // code of the column

    将上面的Value值中上面的一行中“Comment”修改为“COLNNAME”会如何?即

    {OWNER, TABLE, S, COLUMN, DTTPCODE, LENGTH, SIZE, PREC, COMPUTE, NOTNULL, IDENTITY, DOMAIN, DEFAULT, ExtIdentitySeedInc, COMMENT,ExtCollation, ExtIdtNotForReplication, ExtDeftConstName, Sparse, FileStream, ExtRowGuidCol}改为

    {OWNER, TABLE, S, COLUMN, DTTPCODE, LENGTH, SIZE, PREC, COMPUTE, NOTNULL, IDENTITY, DOMAIN, DEFAULT, ExtIdentitySeedInc, COLNNAME, ExtCollation, ExtIdtNotForReplication, ExtDeftConstName, Sparse, FileStream, ExtRowGuidCol}

    结果生成如下:

    邀月工作室

    同理将SQL_2008_MyDefine::Script\Objects\Table\SqlListQuery下的Value的第一行中

    {OWNER, TABLE, TABLE_TYPE, Comment}的Comment改为{OWNER, TABLE, TABLE_TYPE, TNAME}

    生成结果,如下:

     邀月工作室

    至此,我的基本目的,已经达到了,虽然没有直接生成Comment列,但可以通过以下vbs脚本,从Name列生成Comment列:

    '代码一:将name生成comment的脚本

    View Code

    仔细思索:为什么从SQL生成的脚本有Comment,可是到生成PDM时为什么没有转化成功呢?是否Comment名称不对应?

    于是将原来的COMMENT加上COLNNAME,同时在下面的SQL语句中增加一列与COMMENT相同的值:

    (select convert(varchar(8000), value) from ::fn_listextendedproperty(NULL, 'user', u.name, 'table', o.name, 'column', c.name) where name = 'MS_Description') as colnF,

    如下图:

    邀月工作室

    这样,Name列和Comment同时生成,终于OK!

    邀月工作室

    邀月注:本文版权由邀月和博客园共同所有,转载请注明出处。
    参考资料:

    -------------------------------------------------------------------------------------------------------------------------------------------------
    数据库优化
    数据库教程
    数据库实战经验分享博客

    百度云下载

    评测


  • 相关阅读:
    解决xcode5升级后,Undefined symbols for architecture arm64:问题
    第8章 Foundation Kit介绍
    app 之间发送文件 ios
    iphone怎么检测屏幕是否被点亮 (用UIApplication的Delegate)
    CRM下载对象一直处于Wait状态的原因
    错误消息Customer classification does not exist when downloading
    How to resolve error message Distribution channel is not allowed for sales
    ABAP CCDEF, CCIMP, CCMAC, CCAU, CMXXX这些东东是什么鬼
    有了Debug权限就能干坏事?小心了,你的一举一动尽在系统监控中
    SAP GUI和Windows注册表
  • 原文地址:https://www.cnblogs.com/longle/p/PowerDesigner1.html
Copyright © 2011-2022 走看看