使用PD进行数据模型设计时 使name和comment关联

来源:互联网 发布:python手机编译器 编辑:程序博客网 时间:2024/05/07 00:59

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

  • 代码一:将Name中的字符COPY至Comment中
    '******************************************************************************'*   File:           name2comment.vbs'*   Purpose:     Database   generation   cannot   use   object   names   anymore  '                         in   version   7   and   above.'                         It   always   uses   the   object   codes.''                         In   case   the   object   codes   are   not   aligned   with   your  '                         object   names   in   your   model,   this   script   will   copy  '                         the   object   Name   onto   the   object   Comment   for  '                         the   Tables   and   Columns.''*   Title:        '*   Version:     1.0'*   Company:     Sybase   Inc.  '******************************************************************************Option   ExplicitValidationMode   =   TrueInteractiveMode   =   im_BatchDim   mdl   '   the   current   model'   get   the   current   active   modelSet   mdl   =   ActiveModelIf   (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   mdlEnd   If'   This   routine   copy   name   into   comment   for   each   table,   each   column   and   each   view'   of   the   current   folderPrivate   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      Nextend   sub

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

Option   ExplicitValidationMode   =   TrueInteractiveMode   =   im_BatchDim   mdl   '   the   current   model'   get   the   current   active   modelSet   mdl   =   ActiveModelIf   (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   mdlEnd   IfPrivate   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      Nextend   sub


以上两段代码都是VB脚本,在PowerDesigner中使用方法为:


    PowerDesigner->Tools->Execute Commands->Edit/Run Scripts


将代码Copy进去执行就可以了,是对整个CDM或PDM进行操作

0 0
原创粉丝点击