comentToName支持多次运行已经移植过来的不会重复移植
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 Function CreateRegExp(pattern) dim result:set result=CreateObject("VBscript.RegExp") result.Global=true result.IgnoreCase=true result.Pattern=pattern result.MultiLine=true set CreateRegExp=result End Function Function IsRightText(text) if (Len(text)=0) then IsRightText=false exit function end if dim regex:set regex= CreateRegExp("^[a-zA-Z0-9_]+$") dim result:result=regex.Test(text) set regex=nothing IsRightText=result End Function Private sub ProcessFolder(folder) On Error Resume Next Dim Tab 'running table for each Tab in folder.tables if not tab.isShortcut then 'if IsRightText(tab.name) then tab.name = tab.Code + mid(tab.comment,1,10) 'end if Dim col ' running column for each col in tab.columns if col.comment="" then else if IsRightText(col.name) then col.name = mid(col.comment,1,8) end if 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
code转大写upcode
'****************************************************************************** '* File: code2name.vbs '* Title: Code to Name Conversion '* Purpose: To ' '* Model: Physical Data Model '* Category: Naming Standards '* Author: Matt Creason - Sr. System Consultant - Sybase, Inc. '* Created: Apr 8, 2005 '* Mod By: '* Modified: '* Version: 1.0 '* Comment: '* v1.0 - Must have Conversion Tables assigned as a model option '****************************************************************************** Option Explicit ValidationMode = True InteractiveMode = im_Batch Dim mdl ' the current model Dim opt ' model options ' 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 Set opt = mdl.GetModelOptions() opt.EnableNameCodeTranslation = true opt.save opt.UpdateModelOptions ' need to call this you have made changes ProcessFolder End If ' This routine transform code into name for each table, each column of the current folder Private sub ProcessFolder Dim obj, tbl, col for each tbl in mdl.Tables Dim codeToName, cTN for each codeToName in opt.CodeNamingConventions if (codeToName.Name = tbl.ObjectType) then 'output "Converting " + codeToName.Name + " " + tbl.Code + " code to name using " + codeToName.Script 'tbl.Name = tbl.EvaluateText(codeToName.Script) tbl.code= UCase(tbl.code) for each col in tbl.Columns for each cTN in opt.CodeNamingConventions if (cTN.Name = col.ObjectType) then 'output "Converting " + cTN.Name + " " + col.Code + " code to name using " + cTN.Script 'col.Name = col.EvaluateText(cTN.Script) col.code= UCase(col.code) end if next next end if next next end sub
在使用PowerDesigner对数据库进行概念模型和物理模型设计时,一般在NAME或Comment中写中文,在Code中写英文。Name 用来显 示,Code在代码中使用,但Comment中的文字会保存到数据库Table或Column的Comment中,当Name已经存在的时候,再写一次 Comment很麻烦,可以使用以下代码来解决这个问题:
- 代码一:将Name中的字符COPY至Comment中
Option Explicit
ValidationMode = True
InteractiveMode = im_BatchDim 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
nextDim 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_BatchDim 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 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
nextDim 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
-----------------------------------------------------------------------
以上两段代码都是VB脚本,在PowerDesigner中使用方法为:
PowerDesigner->Tools->Execute Commands->Edit/Run Scripts
将代码Copy进去执行就可以了,是对整个CDM或PDM进行操作
相关推荐
标题中的“PowerDesigner 把name写到Comment中 和 把Comment写到name中 pd7以后版本可用”指的是一项在PowerDesigner中操作模型属性的方法。PowerDesigner是一款强大的数据建模工具,广泛应用于数据库设计和逆向工程...
在PowerDesigner这款数据建模和设计工具中,name和comment的互换是一个重要的操作,尤其对于数据模型的管理和维护来说。当我们处理复杂的数据模型时,我们可能需要将模型中对象的name(名称)和comment(注释)字段...
在PowerDesigner中,可以通过执行脚本来自动化一些重复性任务,例如将字段的名称(Name)自动填充到其注释(Comment)中。以下是对这个过程的详细解释: 首先,打开PowerDesigner,点击菜单栏上的“Tools”(工具)...
PowerDesigner里执行脚本命令,把comment列的内容批量复制到name列。
标题“powerdesigner_comment转name_name转comment”指的是使用PowerDesigner工具进行数据库设计时,将字段注释(comment)与字段名(name)之间进行互相转换的功能。在数据库设计过程中,注释对于理解和维护数据库...
PowerDesigner是一款功能强大的数据模型设计工具,但是在某些版本中,视图不支持同时显示name、code、comment(列注释)。本文档将介绍如何在PowerDesigner中显示name、code、comment,解决了这个问题。 问题描述:...
"PowerDesigner 中name和comment 互换脚本"这个主题涉及到的是在PDM中,如何通过编写VBS(Visual Basic Script)脚本来实现模型对象的name属性和comment属性的交换。 PowerDesigner中的name属性通常用于定义对象的...
通过这个脚本,PowerDesigner将自动为每个表、列和视图的name属性生成对应的comment,使得在生成SQL脚本后,当这些对象被创建到数据库时,其comment属性将被正确设置,从而提高了数据库的可读性。 在实际应用中,这...
本篇文章主要讲解如何利用PowerDesigner 15进行特定的操作,即如何将Comment字段中的字符复制到Name字段中,这在数据库对象命名规范化的场景下非常有用。 首先,我们需要了解PowerDesigner 15的工作界面和基本功能...
powerDesigner 把name项添加到comment 使用方法使用方法 PowerDesigner->Tools->Execute Commands->Edit/Run Scripts 可以保存该脚本为:name2comment.vbs
PowerDesigner中使name列的值等于comment列的值的脚本,亲测可用
在设计时,通常会在NAME字段中输入中文名称,而在Comment字段中输入英文描述,以便于显示和代码中使用。同时,Comment中的内容会存储到数据库对象(如Table或Column)的注释中。然而,当NAME已经存在时,手动更新...
标题中提到的问题,即"PowerDesigner逆向工程时,将表字段的comment转换为PDM的name",可以通过编写和执行自定义脚本来实现。以下是这个过程的详细步骤: 1. 打开PowerDesigner中的PDM模型。 2. 进入"Tools"菜单,...
将powerdesigner中物理模型的英文字段名称转换为显示注释
描述中的“PowerDesigner15-将Name中的字符COPY至Comment中.vbs”进一步确认了这个脚本是为PowerDesigner 15版本定制,主要功能就是批量处理模型中的对象,将`Name`字段的内容复制到`Comment`字段。 标签“pdm”...
PowerDesigner 中把Name值批量复制到Comment实用脚本,注意是在CDM和PDM中运行此脚本便可.PowerDesigner->Tools->Execute Commands->Edit/Run Scripts
在 PowerDesigner 物理数据模型 (PDM) 中,有时候需要将对象的 Name 复制到 Comment 中,尤其是在数据库生成时不能使用对象名称的情况下(例如,在 PowerDesigner 7 及更高版本中)。这通常是因为数据库生成过程会...
这是因为 PowerDesigner 中有一个“Name to Code mirroring”功能,该功能可以自动将 Name 同步到 Code 中。 然而,在某些情况下,这种同步功能可能会带来问题。例如,在数据仓库设计中,我们可能需要使用中文字段...
这样做之后,当你修改Name时,Code就不会再自动更新,从而保持了Name和Code的独立性。 7. 完成设置后,点击"OK"按钮,保存你的更改。此时,关闭并重新打开PowerDesigner,你就会发现Name的修改不会影响到Code,问题...
使用PowerDesigner我经常只设置了Name和code,但是数据库里显示不了Name,显示的是描述,及comment。所以我可以通过执行一个脚本批量把列名(name)复制为描述(comment)。