pdm 导入mysql 注释_PowerDesigner逆向导入MYSQL数据库并显示中文注释(转载)
我想直觀的查看數據庫表之間的關系與中文注釋,發現Navicat Premium下的表模型功能,并沒有注釋功能:
用起來不是很方便。所有想到了用PowerDesigner來逆向MYSQL中的表,并顯示中文注釋。
一、安裝ODBC驅動
當前環境:
window 10 64bit
PowerDesigner 16.5 32bit
Connector/ODBC 5.1.13 下載地址:
http://dev.mysql.com/downloads/connector/odbc/5.1.html
選擇win-32 MIS安裝包,由于用的PD版本是32位的,所有選擇ODBC也得32位否則會出現不兼容。
下載之后點擊安裝。
二、配置OBDC驅動連接
安裝好之后,在控制面板中,選擇管理工具
然后填寫正確的TCP/IP Server 、User、 Password、點擊Database 三角標會彈出相關的庫供選擇
然后可以點擊TEST測試連接。最后點擊OK。
會發現多出一個PD_MYSQL.這個就是在Data Source Name定義的。
三、PowerDesigner連接MYSQL
打開PowerDesigner,操作如下
點擊確定后。會列出全部數據的表格。
可以在:那里選擇我們想要的庫
然后可以通過: Select ALL和Deselect All全選和全不選。
選擇想要的表,然后點擊OK。顯示如下:
四、顯示中文注釋
導是導入成功了,但是并沒有顯示中文注釋,顯示表的中文注釋操作如下:
在tool中選擇Display?Preferences
在Table中選擇Comment
然后點擊OK。這樣表的注釋就有了,問題是還有字段的注釋沒有,選中Table,右鍵Properties,會發現其中已經有了Comment,一欄
問題是沒有在PDM圖上顯示。解決方法如下,要將注釋comment的內容替換到code或name中,即可。步驟如下:
1、Tools->Display Preferences->Table->Advanced...->Columns->List Columns
然后將Code移到最上面
然后點擊OK。
2、Tools下增加一個vbs的腳本,可以將code內容替換為注釋內容
復制腳本執行。即可
vbs文件內容如下(注意需要管理員運行):
'******************************************************************************
'* File: comment2code.vbs
'* Purpose: 在PowerDesigner的PDM圖形窗口中顯示數據列的中文注釋
'* Title: 將字段的comment賦值到字段的code中
'* Category: 打開物理模型,運行本腳本(Ctrl+Shift+X)
'* Copyright:foxzz@163.com,2006/07/25 .
'* Author: foxzz
'* Created:
'* Modified:
'* Version: 1.0
'* Comment: 遍歷物理模型中的所有表,將字段的comment賦值到字段的code中。
' 在將code置換為comment過程中,需要考慮的問題
' 1、code必須唯一,而comment有可能不唯一。
' 處理辦法是如果字段的comment重復,則字段的code=comment+1、2、3...
' 2、comment值有可能為空,這種情況下對字段的code不處理。
' 針對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.code = tbl.code+"("+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.code = curComment & cstr(ColumnCommentNumber(k))
else
col.code = 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.code+"."+col.code+" is '';"
end if
next
end if
'由于不同表的code允許相同,因此此時重新初始化。
'因為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.code = 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
執行成功后,效果如下
替換后的字段如下
因為原文的VB腳本不能用,找的其它博文里面的可以成功執行:
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的pdm 导入mysql 注释_PowerDesigner逆向导入MYSQL数据库并显示中文注释(转载)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: .net mysql 类库_(精华)20
- 下一篇: linux es连接mysql_Linu