1,mysql数据库导出模型到powerdesigner

2,CRL+Shift+X

3,复制以下内容,执行

'******************************************************************************
'* 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

转载于:https://www.cnblogs.com/xiexy/p/4864426.html

mysql数据库导出模型到powerdesigner,PDM图形窗口中显示数据列的中文注释相关推荐

  1. MYSQL 数据库怎样快速的复制表以及表中的数据

    第一步 SHOW CREATE TABLE 被复制的表名; 或者 右键->设计表-> SQL 查看SQL语句 第二步 INSERT INTO mytable10 ( ID, usernam ...

  2. mysql数据库导出最大值_4.6 MySQL数据库导入与导出攻略

    4.6 MySQL数据库导入与导出攻略 4.6.1 Linux下MySQL数据库导入与导出 1. MySQL数据库的导出命令参数 主要是通过两个mysql和mysqldump命令来执行 (1) MyS ...

  3. php导出数据库的指定表数据,MYSQL教程mysql数据库导出指定表数据的方法

    <MYSQL教程mysql数据库导出指定表数据的方法>要点: 本文介绍了MYSQL教程mysql数据库导出指定表数据的方法,希望对您有用.如果有疑问,可以联系我们. 导读:linux下导出 ...

  4. MySQL 数据库导出导入操作

    有时需要将 MySQL 数据库中的数据导入到其它的数据库中,这里以从 Ubuntu 系统的 MySQL 数据库导出 zabbix 这个数据库到 Windows 系统中的MySQL 为例. 导出数据库 ...

  5. 如何将远程服务器MYSQL数据库导出导入

    2019独角兽企业重金招聘Python工程师标准>>> MYSQL数据库导出第一种利用空间商提供的PHPMYADMIN管理工具导出,这种较为简单,大家查一下资料这里就不多讲了. 第二 ...

  6. mysql数据库导出数据乱码问题_Mysql数据库导出来的是乱码如何解决

    Mysql数据库导出来的是乱码如何解决 时间:2014-10-13 PHP网站程序人员在制作网站的时候,经常需要将本地上的数据库传到指定的服务器上,这时候需要在软件上先把数据导出来,然后在登录到远程p ...

  7. ubuntu终端mysql数据库导出sql文件

    小记录,打扰了 1.先进入mysql输入指令查看要导出哪个数据库 2.退出mysql 3.ubuntu终端切换到导出的路径, 一般导出到桌面方便 4.输入导出指令 主要的导出语法 使用 mysqldu ...

  8. java实现mysql数据库导出

    import java.io.File; import java.io.IOException;/*** 生产数据导出**/ public class MySQLDatabaseBackup {/** ...

  9. MySql数据库导出csv文件

    MySql数据库导出csv文件命令: mysql> select first_name,last_name,email from account into outfile 'e://output ...

最新文章

  1. mysql连接查询拒绝服务漏洞_MySQL-连接查询
  2. freebsd 运维人员
  3. laravel 框架基础 学习整理
  4. 牛客题霸 [找到字符串的最长无重复字符子串] C++题解/答案
  5. 怎么退出自适应巡航_简单聊聊定速巡航和自适应定速巡航的区别
  6. 这才是程序员加班的真正原因!
  7. 利用联合双边滤波或引导滤波进行升采样(Upsampling)技术提高一些耗时算法的速度。...
  8. go 1.5 国内下载地址
  9. php和python-什么是Python和php?Python与PHP有什么区别
  10. 图系列(一)图神经网络
  11. Java课设——文本编辑器
  12. mac苹果系统的电脑ip地址命令
  13. LOJ10102旅游航道
  14. 提前祝福你和你和家人国庆节快乐,旅途愉快!
  15. Python使用pypinyin实现中文拼音转换教程
  16. php对plc的TCP通信,西门子1200PLC进行TCP通讯配置详解
  17. java求sobel算子代码_sobel算子原理及opencv源码实现
  18. 青椒炒黄瓜+伏特加+Bon jovi+编程
  19. 如何在VUE框架的WEB端实时播放海康威视、大华RTSP视频流 ?
  20. 【实例分割】1、SOLOv1: Segmenting Objects by Locations_2019

热门文章

  1. Vue 路由router的两种模式
  2. Python的DEBUG LOG
  3. 新东方雅思词汇---6.1、oppose
  4. STM32的I2C特性及架构
  5. 【机器学习实战】Machine Learning in Action 代码 视频 项目案例
  6. 官网3.15课程一起来“打价”,找群内管理员还可以折上折
  7. Noi2001食物链-并查集
  8. Solr 4.3.0 配置Data import handler时出错
  9. C#:关于双引号的输出
  10. ProfessionalDotNetNuke 第一章(摘录)