目录:

  • 数据库的反向生成模型
  • 模型的Cooment注释显示

步骤一:下载odbc驱动并进行安装:

(1)下载

mysql-connector-odbc-5.3.4-win32

注意:不管电脑是32位,还是64位,统一安装32位即可。

(2)安装

步骤二:odbcad32.exe添加数据源

找到C:\Windows\SysWOW64目录下找到odbcad32.exe这个文件

双击打开,弹出ODBC数据源管理界面

点击添加按钮,在弹出的窗口中选中,安装好的驱动:

点击完成,弹出数据库信息创建窗体:

点击后Ok后,即可以看到新增加了选项:

配置完成。

步骤三:数据库导出为Sql脚本文件

 

步骤四:打开PowerDesigner软件,进行导入生成模型

A、选择菜单,导入数据源

B.选择数据库版本

C.点击添加Sql文件

D.点击确定后,即可进行转换,生成想要的数据库模型

步骤五,设置显示备注信息:

A、双击表,进入编辑模式,注意:表和列记得添加注释,如下图所示:

点击下图按钮:

B、勾选Comment的多选框

C、打开执行脚本编辑窗口

D、执行以下VBS脚本:

复制代码
    Option   Explicit    
    ValidationMode   =   True    
    InteractiveMode   =   im_Batch 
    Dim blankStr 
    blankStr   =   Space(1) 
    Dim   mdl   '   the   current   model   
<span style="color: #008000;">'</span><span style="color: #008000;">   get   the   current   active   model   </span> 
<span style="color: #0000ff;">Set</span>   mdl   =<span style="color: #000000;">   ActiveModel    
</span><span style="color: #0000ff;">If</span>   (mdl   <span style="color: #0000ff;">Is</span>   <span style="color: #0000ff;">Nothing</span>)   <span style="color: #0000ff;">Then</span>    
      <span style="color: #0000ff;">MsgBox</span>   <span style="color: #800000;">"</span><span style="color: #800000;">There   is   no   current   Model </span><span style="color: #800000;">"</span>    
<span style="color: #0000ff;">ElseIf</span>   <span style="color: #0000ff;">Not</span>   mdl.IsKindOf(PdPDM.cls_Model)   <span style="color: #0000ff;">Then</span>    
      <span style="color: #0000ff;">MsgBox</span>   <span style="color: #800000;">"</span><span style="color: #800000;">The   current   model   is   not   an   Physical   Data   model. </span><span style="color: #800000;">"</span>    
<span style="color: #0000ff;">Else</span><span style="color: #000000;">    
      ProcessFolder   mdl    
</span><span style="color: #0000ff;">End</span>   <span style="color: #0000ff;">If</span>   
   
<span style="color: #0000ff;">Private</span>   <span style="color: #0000ff;">sub</span><span style="color: #000000;">   ProcessFolder(folder)    
</span><span style="color: #0000ff;">On</span> <span style="color: #0000ff;">Error</span> <span style="color: #0000ff;">Resume</span> <span style="color: #0000ff;">Next</span>   
      <span style="color: #0000ff;">Dim</span>   <span style="color: #0000ff;">Tab</span>   <span style="color: #008000;">'</span><span style="color: #008000;">running     table   </span> 
      <span style="color: #0000ff;">for</span>   <span style="color: #0000ff;">each</span>   <span style="color: #0000ff;">Tab</span>   <span style="color: #0000ff;">in</span><span style="color: #000000;">   folder.tables    
            </span><span style="color: #0000ff;">if</span>   <span style="color: #0000ff;">not</span>   <span style="color: #0000ff;">tab</span>.isShortcut   <span style="color: #0000ff;">then</span>    
                  <span style="color: #0000ff;">tab</span>.name   =   <span style="color: #0000ff;">tab</span><span style="color: #000000;">.comment   
                  </span><span style="color: #0000ff;">Dim</span>   col   <span style="color: #008000;">'</span><span style="color: #008000;">   running   column   </span> 
                  <span style="color: #0000ff;">for</span>   <span style="color: #0000ff;">each</span>   col   <span style="color: #0000ff;">in</span>   <span style="color: #0000ff;">tab</span><span style="color: #000000;">.columns    
                  </span><span style="color: #0000ff;">if</span> col.comment = <span style="color: #800000;">""</span> <span style="color: #0000ff;">or</span> <span style="color: #0000ff;">replace</span>(col.comment,<span style="color: #800000;">"</span> <span style="color: #800000;">"</span>, <span style="color: #800000;">""</span>)=<span style="color: #800000;">""</span> <span style="color: #0000ff;">Then</span><span style="color: #000000;"> 
                        col.name </span>=<span style="color: #000000;"> blankStr 
                        blankStr </span>= blankStr &amp; <span style="color: #0000ff;">Space</span>(<span style="color: #800080;">1</span><span style="color: #000000;">) 
                  </span><span style="color: #0000ff;">else</span><span style="color: #000000;">   
                        col.name </span>=<span style="color: #000000;"> col.comment    
                  </span><span style="color: #0000ff;">end</span> <span style="color: #0000ff;">if</span>   
                  <span style="color: #0000ff;">next</span>    
            <span style="color: #0000ff;">end</span>   <span style="color: #0000ff;">if</span>    
      <span style="color: #0000ff;">next</span>   
   
      <span style="color: #0000ff;">Dim</span>   view   <span style="color: #008000;">'</span><span style="color: #008000;">running   view   </span> 
      <span style="color: #0000ff;">for</span>   <span style="color: #0000ff;">each</span>   view   <span style="color: #0000ff;">in</span><span style="color: #000000;">   folder.Views    
            </span><span style="color: #0000ff;">if</span>   <span style="color: #0000ff;">not</span>   view.isShortcut   <span style="color: #0000ff;">then</span><span style="color: #000000;">    
                  view.name   </span>=<span style="color: #000000;">   view.comment    
            </span><span style="color: #0000ff;">end</span>   <span style="color: #0000ff;">if</span>    
      <span style="color: #0000ff;">next</span>   
   
      <span style="color: #008000;">'</span><span style="color: #008000;">   go   into   the   sub-packages   </span> 
      <span style="color: #0000ff;">Dim</span>   f   <span style="color: #008000;">'</span><span style="color: #008000;">   running   folder   </span> 
      <span style="color: #0000ff;">For</span>   <span style="color: #0000ff;">Each</span>   f   <span style="color: #0000ff;">In</span><span style="color: #000000;">   folder.Packages    
            </span><span style="color: #0000ff;">if</span>   <span style="color: #0000ff;">not</span>   f.IsShortcut   <span style="color: #0000ff;">then</span><span style="color: #000000;">    
                  ProcessFolder   f    
            </span><span style="color: #0000ff;">end</span>   <span style="color: #0000ff;">if</span>    
      <span style="color: #0000ff;">Next</span>    
<span style="color: #0000ff;">end</span>   <span style="color: #0000ff;">sub</span>  &nbsp;</pre> 
复制代码

 

 E、执行后,即可发现注释已经正常现示:

步骤六:显示原字段名

点击Ok后,会弹出确认框,默认选择确定后即可看到效果:

步骤七:更改显示的顺序:

调整后效果:

 

数据库反向生成模型结束!


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!