mysql pdm_mysql 生成pdm
1.條件
1.1 工具powerDesigner16.5
1.2 mysql數據庫地址或腳本
1.3 mysql-connector-odbc-5.3.4-winx64.msi
2.操作步驟
2.1 database > change DBMS 選擇Mysql5.0
2.2 打開powerDesigner16.5工具, file > reverse Engineer > database
確定,則生成對應的pdm.
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
tools > excute commands > Edit/Run scripts
總結
以上是生活随笔為你收集整理的mysql pdm_mysql 生成pdm的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql dns反向解析_Mysql
- 下一篇: linux cmake编译源码,linu