zoukankan      html  css  js  c++  java
  • 通过MySQL数据结构脚本生成Powerdesigner模型

     

     

     

    导出要建模的表结构脚本.sql

     

     File -> Reverse Engineer -> Database

    General-DBMS:MySQL5.0(根据自己MySQL版本选择)

     附常用脚本

    脚本执行路径

    备注到名称和名称到备注脚本 在使用PowerDesigner对数据库进行概念模型和物理模型设计时,一般在NAME或Comment中写中文,在Code中写英文。Name用来显 示,Code在代码中使用,但Comment中的文字会保存到数据库Table或Column的Comment中,当Name已经存在的时候,再写一次 Comment很麻烦,可以使用以下代码来解决这个问题

    '代码一:将Name中的字符COPY至Comment中  
    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   comment   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

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

    '代码二:将Comment中的字符COPY至Name中   
      
    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  
      
    Private   sub   ProcessFolder(folder)   
    On Error Resume Next  
          Dim   Tab   'running     table   
          for   each   Tab   in   folder.tables   
                if   not   tab.isShortcut   then   
                      tab.name   =   tab.comment  
                      Dim   col   '   running   column   
                      for   each   col   in   tab.columns   
                      if col.comment="" then  
                      else  
                            col.name=   col.comment   
                      end if  
                      next   
                end   if   
          next  
      
          Dim   view   'running   view   
          for   each   view   in   folder.Views   
                if   not   view.isShortcut   then   
                      view.name   =   view.comment   
                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

    powerdesign小写转大写(ctrl+shift+x)脚本

    '文件:powerdesigner.ucase.VBs
     '版本:1.0
     '功能:遍历物理模型中的所有表,将表名、表代码、字段名、字段代码全部由小写改成大写;
     ' 并将序列的名和代码由小写改成大写。
     '用法:打开物理模型,运行本脚本(Ctrl+Shift+X)
     '备注:
     '*****************************************************************************
     dim model 'current model
     set model = ActiveModel
    If (model Is Nothing) Then
     MsgBox "There is no current Model"
     ElseIf Not model.IsKindOf(PdPDM.cls_Model) Then
     MsgBox "The current model is not an Physical Data model."
     Else
     ProcessTables model
     ProcessSequences model
     End If
    '*****************************************************************************
     '函数:ProcessSequences
     '功能:递归遍历所有的序列
     '*****************************************************************************
     sub ProcessSequences(folder)
     '处理模型中的序列:小写改大写
     dim sequence
     for each sequence in folder.sequences
     sequence.name = UCase(sequence.name)
     sequence.code = UCase(sequence.code)
     next
     end sub
    '*****************************************************************************
     '函数:ProcessTables
     '功能:递归遍历所有的表
     '*****************************************************************************
     sub ProcessTables(folder)
     '处理模型中的表
     dim table
     for each table in folder.tables
     if not table.IsShortCut then 
    ProcessTable table
     end if
     next
     '对子目录进行递归
     dim subFolder
     for each subFolder in folder.Packages
     ProcessTables subFolder
     next 
    end sub
    '*****************************************************************************
     '函数:ProcessTable
     '功能:遍历指定table的所有字段,将字段名由小写改成大写,
     ' 字段代码由小写改成大写
     ' 表名由小写改成大写 
    '*****************************************************************************
     sub ProcessTable(table)
     dim col
     for each col in table.Columns
     '将字段名由小写改成大写
     col.code = UCase(col.code)
     col.name = UCase(col.name)
     next 
    table.name = UCase(table.name)
     table.code = UCase(table.code)
     end sub
  • 相关阅读:
    Golang的跨平台编译程序
    PySide教程:Clo“.NET研究”se 狼人:
    PyS“.NET研究”ide QtCore.Signal帮助手册 狼人:
    PySide教程:“.NET研究”第一个PySide应用 狼人:
    关“.NET研究”于Android的一些设计 狼人:
    资深设计师Tony Ventrice解析手机游戏开“.NET研究”发的四个层次 狼人:
    移动开发多平台代码共享“.NET研究” 狼人:
    关于做Andr“.NET研究”oid+J2ee系统集成开发的一点心得 狼人:
    “.NET研究”【Android开发教程】一、基础概念 狼人:
    “.NET研究”如何发布你的Android应用程序 狼人:
  • 原文地址:https://www.cnblogs.com/ff111/p/10616605.html
Copyright © 2011-2022 走看看