PowerDesigner转换公式
### PowerDesigner转换公式:Name与Comment之间的转换 #### 背景介绍 在数据库设计领域,Sybase PowerDesigner是一款广泛使用的工具,它可以帮助用户进行概念、逻辑和物理数据模型的设计。有时,在数据库生成过程中,可能会遇到这样的问题:由于版本升级或其他原因,数据库生成不再使用对象名称,而是使用对象代码。如果模型中的对象代码与对象名称不一致,这可能会导致一些问题。为了解决这一问题,可以编写脚本来实现Name与Comment之间的相互复制。 #### 关键知识点解析 **知识点一:Name到Comment的转换** 在PowerDesigner中,每个对象(如表、视图、字段等)都具有一个`Name`属性和一个`Comment`属性。通常情况下,`Name`用于标识对象,而`Comment`则用来提供关于该对象的描述性信息。 ##### 实现方法 一种常见的需求是将对象的`Name`复制到`Comment`中,以确保即使数据库生成时仅使用对象代码,也能够通过`Comment`找到对象的原始名称。这种需求可以通过编写VBS脚本来自动完成: ```vbscript Sub NameToComment() ' 获取当前活动的模型 Dim mdl : Set mdl = ActiveModel If Not mdl Is Nothing And mdl.IsKindOf(PdPDM.cls_Model) Then ProcessFolder mdl ' 调用处理函数 Else MsgBox "当前没有打开物理数据模型。" End If End Sub Sub ProcessFolder(folder) ' 遍历当前文件夹下的所有表 For Each Tab In folder.Tables If Not Tab.IsShortcut Then Tab.Comment = Tab.Name ' 将表名复制到表的注释中 ' 处理表内的所有列 For Each Col In Tab.Columns Col.Comment = Col.Name ' 将列名复制到列的注释中 Next End If Next ' 处理当前文件夹下的所有视图 For Each View In folder.Views If Not View.IsShortcut Then View.Comment = View.Name ' 将视图名复制到视图的注释中 End If Next ' 递归处理子文件夹 For Each f In folder.Packages If Not f.IsShortcut Then ProcessFolder f End If Next End Sub ``` **知识点二:Comment到Name的转换** 同样地,也可能需要执行相反的操作,即把`Comment`的内容复制到`Name`中。这种情况可能发生在需要调整数据库结构或修复模型中的错误时。下面是一个简单的脚本示例,展示如何实现这个功能: ```vbscript Sub CommentToName() ' 获取当前活动的模型 Dim mdl : Set mdl = ActiveModel If Not mdl Is Nothing And mdl.IsKindOf(PdPDM.cls_Model) Then ProcessFolder mdl ' 调用处理函数 Else MsgBox "当前没有打开物理数据模型。" End If End Sub Sub ProcessFolder(folder) On Error Resume Next ' 遍历当前文件夹下的所有表 For Each Tab In folder.Tables If Not Tab.IsShortcut Then Tab.Name = Tab.Comment ' 将表的注释复制到表名中 ' 处理表内的所有列 For Each Col In Tab.Columns If Col.Comment <> "" Then Col.Name = Col.Comment ' 只有当列的注释非空时才复制 End If Next End If Next ' 处理当前文件夹下的所有视图 For Each View In folder.Views If Not View.IsShortcut Then View.Name = View.Comment ' 将视图的注释复制到视图名中 End If Next ' 递归处理子文件夹 For Each f In folder.Packages If Not f.IsShortcut Then ProcessFolder f End If Next End Sub ``` ### 总结 通过对上述两个脚本的学习,我们可以了解到在PowerDesigner中如何实现Name与Comment之间的转换。这些脚本不仅简化了数据库设计的工作流程,还提高了效率。在实际应用中,根据具体的需求选择合适的转换方向是非常重要的。例如,在数据库生成前,可以先将Name复制到Comment中;而在修改数据库结构后,则可能需要执行Comment到Name的转换来更新模型。
'******************************************************************************
'* 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 "
- 粉丝: 0
- 资源: 5
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助