`
cleaneyes
  • 浏览: 345035 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

PowerDesigner列名、注释内容互换[

 
阅读更多

在用PowerDesigner时,常常在NAME或Comment中写中文在Code中写英文,Name只会显示给我们看,Code会使用在代码中,但Comment中的文字会保存到数据库TABLE的Description中,有时候我们写好了Name再写一次Comment很麻烦,以下两段代码就可以解决这个问题。
在PowerDesigner中PowerDesigner->Tools->Execute Commands->Edit/Run Scripts(Ctrl Shift X),然后将下面的脚本粘贴进去,并运行,即可

代码一:将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 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
代码二:将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
代码三:将Name中的字符COPY至Comment中(优化)
'把pd中那么name想自动添加到comment里面
'如果comment为空,则填入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
' 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
         if trim(tab.comment)="" then '如果有表的注释,则不改变它.如果没有表注释.则把name添加到注释里面.
       tab.comment = tab.name
         end if
      Dim col ' running column
      for each col in tab.columns
        if trim(col.comment)="" then '如果col的comment为空,则填入name,如果已有注释,则不添加;这样可以避免已有注释丢失.
         col.comment= col.name
        end if
      next
    end if
  next
  Dim view 'running view
  for each view in folder.Views
    if not view.isShortcut and trim(view.comment)="" 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
 
 
 
 

Powerdesigner表名及字段的大小写转换脚本

 

用PowerDesigner设计表结构时,若一不小心在写表结构和字段的时候用了大小写混合或者小写。PowerDesigner则在生成SQL时会自动在表名上使用双引号。例如:
/*==============================================================*/ 
/* Table: "test"                                                */ 
/*==============================================================*/ 
create table "test"  ( 
   "username"           varchar2(24), 
   "full_name"          varchar2(24) 
); 
ORACLE会认为该表和字段使用小写字母命名,但是ORACLE默认是使用大写字母的,这样会导致有些用法用不了(比如修改字段名,数据修改等)。下面提供段脚本代码可以把PowerDesigner中的小写字母变为大写字母。
 
使用方法:进入PowerDesigner,打开需要转换的PDM,在菜单栏找到:Tools – Excute Commands – Edit/Run Script,或者直接按Ctrl+Shift+X调出脚本执行窗口,输入下边的代码就可以了。

代码如下: 
Option Explicit  
ValidationMode = True  
InteractiveMode = im_Batch  
Dim mdl ' 当前模型  
' 获取当前模型  
Set mdl = ActiveModel  
If (mdl Is Nothing) Then  
   MsgBox "没有打开一个模型" 
ElseIf Not mdl.IsKindOf(PdPDM.cls_Model) Then  
   MsgBox "当前模型不是一个PDM" 
Else  
'调用处理程序  
   ProcessFolder mdl  
End If    
'调用的处理程序  
Private sub ProcessFolder(folder)  
   Dim Tab '要处理的表  
   for each Tab in folder.Tables  
    ' if not Tab.isShortcut then  
        ' Tab.code = tab.name  
        '表名处理,前边添加前缀,字母小写  
        Tab.name=  UCase(Tab.name)  
        Tab.code= UCase(Tab.code)  
         Dim col ' 要处理的列  
         for each col in Tab.columns  
            '列名称和code全部小写,大写诗UCase  
            col.code= UCase(col.code)  
            col.name= UCase(col.name)  
         next  
      'end if 
   next    
' 处理视图  
'  Dim view 'running view  
'   for each view in folder.Views  
   '   if not view.isShortcut then  
       '  view.code = view.name  
    '  end if 
  ' next     
   ' 递归进入 sub-packages  
   Dim f ' sub  folder  
   For Each f In folder.Packages  
      if not f.IsShortcut then  
         ProcessFolder f  
      end if 
   Next  
end sub 
分享到:
评论

相关推荐

    PowerDesigner列名、注释内容互换.

    PowerDesigner列名、注释内容互换.,是反向工程后将英文注释替换为数据的描述信息

    powerdesigner 显示注释程序

    "显示注释程序"正是为了解决这个问题而存在的,它是一个VBS(Visual Basic Script)脚本,能够帮助用户在PowerDesigner中查看并管理对象的注释。 在数据库设计过程中,注释是非常重要的元素,它们提供了对表、字段...

    PowerDesigner生成带注释的pdm脚本

    当PowerDesigner连接好数据库,并生成模型后,在PowerDesigner用Ctrl+Shift+x快捷键打开,然后将脚本内容粘贴运行,就可以开始生成数据库中存在的注释了

    powerdesigner生成注释脚本

    使用步骤如下:1、在物理模型下按ctrl+shift+x, 2、在弹出的对话框左上方选择文件夹样式的图标 3、选择脚本文件,并run。

    PowerDesigner脚本(注释名称互转,逆向注释转名称)

    "PowerDesigner脚本(注释名称互转,逆向注释转名称)"就是针对这种需求提供的解决方案。 首先,我们需要理解PowerDesigner中的基本概念。在PowerDesigner中,模型(Model)是数据库设计的核心,它可以包含多个实体...

    PowerDesigner导出的SQL带列注释,导入到MySQL中列注释不见了的处理方法

    PowerDesigner 导出的 SQL 带列注释,导入到 MySQL 中列注释不见了的处理方法 在使用 PowerDesigner 导出 SQL 文件时,如果包含列注释,可能会在导入到 MySQL 数据库中时丢失。这是因为 PowerDesigner 导出的 SQL ...

    powerdesigner导出sql设置注释

    打开powerdesigner工具,点开tools->execute-commands->edit/run script,导入文件

    powerdesigner添加数据源、反向工程、表显示注释

    PowerDesigner 添加数据源、反向工程、表显示注释 PowerDesigner 是一款功能强大的数据建模工具,能够帮助用户设计、开发和维护复杂的数据系统。下面是关于 PowerDesigner 添加数据源、反向工程、表显示注释的知识...

    PowerDesigner逆向工程-Mysql,并解决没有注释的问题!

    Acommenttoname.vbs可能负责将注释内容与表或列的名字关联起来;而Atable-code2name.vbs可能是用于将编码(如编号)转换为对应的名称,使数据库元素更加易读。这些脚本可以通过PowerDesigner的自定义脚本功能进行...

    PowerDesigner将注释转成名称脚本

    根据给定的信息,本文将详细解释如何在PowerDesigner中通过编写脚本来实现将数据库对象(如表、视图等)的注释转换为相应的名称。这种方法对于自动化文档更新或者进行模型标准化非常有用。 ### PowerDesigner简介 ...

    PowerDesigner连接MySQL互相导入以及显示中文注释

    ### PowerDesigner连接MySQL互相导入及显示中文注释详解 #### 一、安装ODBC驱动 在进行PowerDesigner与MySQL之间的连接之前,首先需要确保已经安装了ODBC (Open Database Connectivity) 驱动。ODBC驱动是实现不同...

    powerdesigner逆向生成工具将注释字段添加到name字段上

    powerdesigner逆向工程导入mysql脚本生成PDM带全注释

    powerdesigner生成含注释的sql

    标题中的"powerdesigner生成含注释的sql"指的是使用PowerDesigner这款强大的数据库设计工具来创建包含注释的SQL脚本。PowerDesigner是一款流行的数据建模工具,它可以帮助IT专业人员进行概念数据模型(CDM)、物理...

    powerdesigner画ER图显示注释

    一个小脚本,可以让powerdesigner显示的ER图添加注释,不过需要做一些设置

    把powerdesigner中表名为汉字以及列名为汉字的转为汉语拼音抽头的方法

    PowerDesigner 中将汉字表名和列名转换为汉语拼音抽头的方法 PowerDesigner 是一款功能强大且流行的数据建模工具,广泛应用于数据 warehousing、数据 mining 和业务流程分析等领域。然而,在使用 PowerDesigner ...

    powerdesigner,将name自动填充到注释(comment)。

    在PowerDesigner中,可以通过执行脚本来自动化一些重复性任务,例如将字段的名称(Name)自动填充到其注释(Comment)中。以下是对这个过程的详细解释: 首先,打开PowerDesigner,点击菜单栏上的“Tools”(工具)...

    用PowerDesigner 逆向工程导出ORACLE数据库 表+字段+注释

    2. **定制报告内容**:在报告向导中,可以精细调整报告中包含的信息,如表名、表注释、列名、列类型、列长度及列注释等。通过拖放和排序功能,确保报告的布局符合需求。 3. **生成报告**:完成定制后,使用“生成...

    PowerDesigner把列名(name)复制为描述(comment).rar

    使用PowerDesigner我经常只设置了Name和code,但是数据库里显示不了Name,显示的是描述,及comment。所以我可以通过执行一个脚本批量把列名(name)复制为描述(comment)。

    Powerdesigner逆向工程生成PDM 中文列名表名

    ### PowerDesigner逆向工程生成PDM(物理数据模型)及中文列名表名转换为注释 #### 一、PowerDesigner及其逆向工程概述 PowerDesigner是一款强大的CASE工具,广泛应用于数据库设计、业务流程建模等领域。通过...

    PowerDesigner中的name和comment互换

    根据提供的信息,虽然文章的描述部分为“NULL”,但通过对部分内容的分析,可以看出文章重点介绍了在PowerDesigner中编写和执行脚本,以及如何使用这些脚本进行name和comment的互换。这个过程是通过PowerDesigner的...

Global site tag (gtag.js) - Google Analytics