mysql数据库导出模型到powerdesigner,PDM图形窗口中显示数据列的中文注释
1,mysql數(shù)據(jù)庫導出模型到powerdesigner
2,CRL+Shift+X
3,復制以下內(nèi)容,執(zhí)行
'******************************************************************************
'* File:???? comment2name.vbs
'* Purpose:? 在PowerDesigner的PDM圖形窗口中顯示數(shù)據(jù)列的中文注釋
'* 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數(shù)據(jù)庫,將comment on column 字段名稱 is '';添加到C:/pdcomment.txt文件中。
'?????????????? 在補充comment完畢后,便于在數(shù)據(jù)庫中執(zhí)行????????
'******************************************************************************
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是否物理數(shù)據(jù)模型
Dim mdl
Set mdl = ActiveModel?
If (mdl Is Nothing) Then?
?? MsgBox "處理對象無模型"?
ElseIf Not mdl.IsKindOf(PdPDM.cls_Model) Then?
?? MsgBox "當前模型不是物理數(shù)據(jù)模型"?
Else?
?? ProcessFolder mdl,file?
End If?
file.Close
'******************************************************************************
Private sub ProcessFolder(folder,file)
Dim i,j,k
i=0:j=0:k=0
'列數(shù)組,記錄字段里不重復的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數(shù)組
????????????? for j = 0 to i
????????????????? if ColumnComment(j) = curComment then
???????????????????? '如果找到相同的comment,則相關計數(shù)器加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記錄添加到數(shù)組中
???????????????? 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?
?
轉(zhuǎn)載于:https://www.cnblogs.com/xiexy/p/4864426.html
總結
以上是生活随笔為你收集整理的mysql数据库导出模型到powerdesigner,PDM图形窗口中显示数据列的中文注释的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Missing the OpenSSL
- 下一篇: 大头儿子和隔壁老王