powerdesigner奇淫技

简介:

 在日常开发中数据库的设计常常需要建立模型,而powerdesigner是个不错的选择。但很多时候用powerdesigner生成模型后再去创建表结构,会觉得烦和别扭。那么能不能数据库表建好后再生成模型呢?然而生成的模型是否符合我们的日常使用习惯呢?下面说说powerdesigner的奇淫技。

  1、根据sql生成视图模型(在不使用ODBC直接连接数据库的情况下)

    将表结构导出sql文件后执行以下操作

    

    

    

  按确定后便可生成相应的表视图模型。但是生成的视图模型name和code都是英文的,不好理解。因而有了奇淫技2。

  2、将comment列值复制到name列

    

    Ctr + O选择转换脚本 comment2name.vbs(将以下代码片段保存成一个vbs)    

复制代码
'******************************************************************************
'* File:     comment2name.vbs
'* Purpose:  在PowerDesigner的PDM图形窗口中显示数据列的中文注释
'* Title:    将字段的comment赋值到字段的name中
'* Category: 打开物理模型,运行本脚本(Ctrl+Shift+X)
'* Copyright:foxzz@163.com,2006/07/25 .
'* Author:   foxzz
'* Created:  
'* Modified: 
'* Version:  1.0
'* Comment:  遍历物理模型中的所有表,将字段的comment赋值到字段的name中。
'            在将name置换为comment过程中,需要考虑的问题
'            1、name必须唯一,而comment有可能不唯一。
'               处理办法是如果字段的comment重复,则字段的name=comment+1、2、3...
'            2、comment值有可能为空,这种情况下对字段的name不处理。
'               针对oracle数据库,将comment on column 字段名称 is '';添加到C:/pdcomment.txt文件中。
'               在补充comment完毕后,便于在数据库中执行        
'******************************************************************************
 
Option Explicit 
ValidationMode = True
InteractiveMode = im_Batch
 
Dim system, file
Set system = CreateObject("Scripting.FileSystemObject")
Dim ForReading, ForWriting, ForAppending   '打开文件选项
ForReading   = 1 ' 只读 
ForWriting   = 2 ' 可写 
ForAppending = 8 ' 可写并追加
'打开文本文件
Set file = system.OpenTextFile("C:/pdcomment.txt", ForWriting, true)
 
 
'判断当前model是否物理数据模型
Dim mdl
Set mdl = ActiveModel 
If (mdl Is Nothing) Then
   MsgBox "处理对象无模型"
ElseIf Not mdl.IsKindOf(PdPDM.cls_Model) Then
   MsgBox "当前模型不是物理数据模型"
Else
   ProcessFolder mdl,file 
End If
file.Close
 
 
'******************************************************************************
Private sub ProcessFolder(folder,file)
 
Dim i,j,k
i=0:j=0:k=0
 
'列数组,记录字段里不重复的comment
Dim ColumnComment() 
Dim ColumnCommentNumber()
ReDim Preserve ColumnComment(i)
ReDim Preserve ColumnCommentNumber(i)
 
Dim tbl   '当前表
Dim col   '当前字段 
dim curComment  '当前字段comment
 
'处理模型中的表
for each tbl in folder.tables 
    if not tbl.isShortcut then 
       if len(trim(tbl.comment))<>0 then
          '可以在这里显示table的comment
          'tbl.name = tbl.name+"("+trim(tbl.comment)+")"
       end if  
 
       '处理表中的列
       for each col in tbl.columns 
           k = 0
           curComment = trim(col.comment)
           if len(curComment)<>0 then
              '遍历相异的comment数组
              for j = 0 to i
                  if ColumnComment(j) = curComment then
                     '如果找到相同的comment,则相关计数器加1
                     ColumnCommentNumber(j) = ColumnCommentNumber(j) + 1
                     k = j
                  end if 
              Next
              '如果没有相同的comment,则k=0,此时ColumnCommentNumber(0)也为0
              '否则ColumnCommentNumber(k)不为0
              if ColumnCommentNumber(k) <> 0 then
                 col.name = curComment & cstr(ColumnCommentNumber(k))
              else
                 col.name  = curComment
                 'ColumnComment(0)、ColumnCommentNumber(0)永远为空
                 '将相异的comment记录添加到数组中
                 i = i + 1
                 ReDim Preserve ColumnComment(i)
                 ReDim Preserve ColumnCommentNumber(i)
                 ColumnComment(i) = curComment
                 ColumnCommentNumber(i) = 0
              end if
           else
              '写入文件中
              file.WriteLine "comment on column "+ tbl.name+"."+col.code+" is '';"          
           end if
       next 
    end if 
    '由于不同表的name允许相同,因此此时重新初始化。
    '因为ColumnComment(0)、ColumnCommentNumber(0)为空,可以保留
    ReDim Preserve ColumnComment(0)
    ReDim Preserve ColumnCommentNumber(0)
    i=0:j=0:k=0
 
next
 
Dim view  '当前视图
for each view in folder.Views 
    if not view.isShortcut then 
       '可以在这里显示view的comment
       'view.name =  view.comment
    end if 
next
 
'对子目录进行递归
Dim subpackage 'folder
For Each subpackage In folder.Packages 
    if not subpackage.IsShortcut then 
       ProcessFolder subpackage , file
    end if 
Next
 
end sub
复制代码

  

  最后点击run按钮,你会发现神奇的事情就这么发生了。

  3、让table视图同时显示name和code

  

  

  至此,你便可在查询工具里建立好表结构。然后再生成表模型了,省省体力吧!






本文转自秋楓博客园博客,原文链接:http://www.cnblogs.com/rwxwsblog/p/5041884.html,如需转载请自行联系原作者
目录
相关文章
|
数据采集 运维 监控
|
7月前
|
缓存 人工智能 Go
go.work
Go语言在1.18版本引入的go.work文件是一种工作区管理工具,用于简化多模块开发。它通过在项目根目录创建go.work文件,使用use指令关联本地模块路径,使开发者能够直接调用不同模块(如主应用myapp和共享库mylib)的函数,无需修改go.mod文件或发布未完成版本。相比replace机制,go.work提供了更便捷的本地开发方案,既能保持生产环境依赖完整性,又解决了多模块协同开发时版本不匹配的问题,尤其适合大型项目和微服务架构。
1548 2
|
8月前
|
人工智能 监控 Shell
2026年阿里云及本地部署OpenClaw/Clawdbot搞钱指南:+5大变现野路子,零基础也能赚睡后收入
2026年,OpenClaw(原Clawdbot)凭借25万+GitHub星标,成为现象级开源AI工具。但多数人只把它当“聊天助手”,却忽略了其核心价值——它不是现成的提款机,而是一把能撬动财富的“铲子”。OpenClaw的本质是通用连接器与私人AI劳动力,能自动化完成高重复、低价值工作,而真正的赚钱逻辑,是用它解决实际问题、售卖“结果”,而非单纯卖软件或插件。
2500 3
|
5月前
|
自然语言处理 搜索推荐 数据挖掘
2026年企业级Agent解决方案,电商行业及企业Agent应用场景
2026年,企业级Agent进入深水区。本文介绍以AgentOne为中枢、整合Quick Audience(营销)、Quick Service(客服)、Quick BI(分析)与Dataphin(数据治理)的全链路智能矩阵,破解电商流量碎片化、运营复杂化等痛点,实现降本增效与全域数智化升级。(239字)
|
12月前
|
敏捷开发 前端开发 测试技术
测试之道:重构你的测试策略 - 测试金字塔模型
测试之道:重构你的测试策略 - 测试金字塔模型
871 118
|
人工智能 JavaScript Java
在IDEA中借助满血版 DeepSeek 提高编码效率
通义灵码2.0引入了DeepSeek V3与R1模型,新增Qwen2.5-Max和QWQ模型,支持个性化服务切换。阿里云发布开源推理模型QwQ-32B,在数学、代码及通用能力上表现卓越,性能媲美DeepSeek-R1,且部署成本低。AI程序员功能涵盖表结构设计、前后端代码生成、单元测试与错误排查,大幅提升开发效率。跨语言编程示例中,成功集成DeepSeek-R1生成公告内容。相比1.0版本,2.0支持多款模型,丰富上下文类型,具备多文件修改能力。总结显示,AI程序员生成代码准确度高,但需参考现有工程风格以确保一致性,错误排查功能强大,适合明确问题描述场景。相关链接提供下载与原文参考。
2038 160
在IDEA中借助满血版 DeepSeek 提高编码效率
|
Python 存储 自然语言处理
Langchain 和 RAG 最佳实践
这是一篇关于LangChain和RAG的快速入门文章,主要参考了由Harrison Chase和Andrew Ng讲授的​​Langchain chat with your data​​​课程。你可以在​​rag101仓库​​​中查看完整代码。本文翻译自我的英文博客,最新修订内容可随时参考:​​LangChain 与 RAG 最佳实践​​。
1051 4
Langchain 和 RAG 最佳实践
|
Java 数据库连接 数据库
不可不知道的Spring 框架七大模块
Spring框架是一个全面的Java企业级应用开发框架,其核心容器模块为其他模块提供基础支持,包括Beans、Core、Context和SpEL四大子模块;数据访问及集成模块支持数据库操作,涵盖JDBC、ORM、OXM、JMS和Transactions;Web模块则专注于Web应用,提供Servlet、WebSocket等功能;此外,还包括AOP、Aspects、Instrumentation、Messaging和Test等辅助模块,共同构建强大的企业级应用解决方案。
|
搜索推荐 前端开发 数据安全/隐私保护
改善用户体验方法
【10月更文挑战第9天】改善用户体验方法
1501 3
|
存储 开发框架 .NET
Windows IIS中asp的global.asa全局配置文件使用说明
Windows IIS中asp的global.asa全局配置文件使用说明
546 1

热门文章

最新文章