powerdesigner逆向工程生成PDM时的列注释解决方案的补充
在《powerdesigner逆向工程生成PDM时的列注释解决方案》一文中,我介绍了如何在逆向工程中从现有数据库中生成PDM文件时将数据库中的Description直接带到PDM中,主要解释了我的解决思路,有些乱。有的朋友不是很清楚,在本文中再次补充一个清晰的思路,希望能给大家带来帮助。
总体思路是根据PD自带的模板修改而成。修改前请备份Sybase安装路径\Resource Files\DBMS文件夹。
邀月使用的是Powerdesigner 15.3,数据库为SQL Server 2008 r2
步骤:
1、创建DBMS
Powerdesigner界面-tools-Resources-DBMS,点击左上角的New,选择copy from templete,如果你的数据库是sql server 2005,选择系统自带的SQL server 2005,如果是sql server 2008,选择系统自带的sqlsv2k8.xdb。本例中是sql server 2008 r2,故选择sqlsv2k8.xdb,起一个新名字,如SQL2008_Mod_201105。
2、建立数据源,逆向生成测试,顺利成功!
此时再生成数据库脚本时,会自动将Comment中的中文注释带入到脚本中。
美中不足的是Name还是英文,在一个包中查看表时,感觉怪怪的。
有两个解决办法:
3-1、改进脚本
Powerdesigner界面-Database-Edit Current DBMS
如下:(本文以sql server 2008为例,sql server 2005类同。)
将表的Name换为Comment
将列的Name换为Comment
此时生成的效果最为理想。
3-2、利用vbs脚本完成。
在Sybase安装路径\VB Scripts下新建Comments2Name.vbs,内容如下:
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 code 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 len(tab.comment) <> 0 then
tab.name = tab.comment
end if
On Error Resume Next
Dim col 'running column
for each col in tab.columns
if len(col.comment) <>0 then
col.name =col.comment
end if
On Error Resume Next
next
end if
next
end sub
在生成的PDM中, Powerdesigner界面-tools-Execute Cmmands-Edit/Run Scripts
在打开的界面中,左上角,选择打开,Ctrl+O,选取刚才的Comments2Name.vbs,并Run,效果同上。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
2010-05-21 一个正则表达式的小工具--myRegexHelper
2010-05-21 Installshield2010实现web部署和数据库安装示例