怎樣才能將資料庫中表PBCATCOL的PBC_LABL欄位的值反向到PDM對應的NAME?

來源:互聯網
上載者:User
PowerDesigner可以將PDM的NAME值寫入資料庫的PBCATCOL表中相應的幾個欄位,但我現在通過PD的Resever Engineer功能將資料庫的表反向到PDM中,怎樣才能使當時產生在表PBCATCOL中的相應NAME值同時反向到PDM的NAME(我想要是的中文)。
先謝了!回複人:不願放棄(byfq)2004-12-2 12:36:37PowerDesigner資料庫系統分析設計與應用 薑江著 一書中寫有,有點複雜,記不清楚了,你可以找找看看回複人:阿飛(nbnasom)2004-12-3 14:37:37學習ING回複人:【最後一滴水】(am2000)2004-12-4 22:33:52Tools-PowerBuilder-Reverse Extended Attributes回複人:【最後一滴水】(am2000)2004-12-4 23:33:48我也碰到這個問題。
我現已通過逆向工程將資料庫中的LABEL、HEADER、COMMENT逆向到PDM的Extended attributes中了。
但我不知道如何將Label賦值到NAME.回複人:【最後一滴水】(am2000)2004-12-4 23:45:44Option Explicit
ValidationMode = True
InteractiveMode = im_Batch
Dim mdl ' the current model
' get the current active model
Set mdl = ActiveModel
If (mdl Is Nothing) Then
MsgBox "There is no current Model"
ElseIf Not mdl.IsKindOf(PdPDM.cls_Model) Then
MsgBox "The current model is not an Physical Data model."
Else
ProcessFolder mdl
End If
' This routine copy name into code for each table, each column and each view
' of the current folder
Private sub ProcessFolder(folder)
dim ls_NameTemp
Dim Tab 'running table
for each Tab in folder.tables
if not tab.isShortcut then
'tab.code = tab.name

if instr(Tab.name," ") > 0 then
ls_NameTemp = Mid(Tab.name,1,instr(Tab.name," ") - 1 )
else
if instr(Tab.name," ") > 0 then
ls_NameTemp = Mid(Tab.name,1,instr(Tab.name," ") - 1 )
else
ls_NameTemp = Tab.name
end if
end if

if len(ls_NameTemp) < 8 then
Tab.name = ls_NameTemp + Space( 8 - len(ls_NameTemp) ) + Tab.code
else
Tab.name = ls_NameTemp + Space( 2 ) + Tab.code
'考慮名稱相同出現的異常
end if
On Error Resume Next

Dim col ' running column
for each col in tab.columns
'col.code= col.name
if instr(col.name," ") > 0 then
ls_NameTemp = Mid(col.name,1,instr(col.name," ") - 1 )
else
if instr(col.name," ") > 0 then
ls_NameTemp = Mid(col.name,1,instr(col.name," ") - 1 )
else
ls_NameTemp = col.name
end if
end if

if len(ls_NameTemp) < 6 then
'col.name = ls_NameTemp + Space( (8 - len(ls_NameTemp)) * 2 ) + col.code
col.name = ls_NameTemp + left( "          ",6 - len(ls_NameTemp) ) + col.code
else
'col.name = ls_NameTemp + Space(2) + col.code
col.name = ls_NameTemp + left( "          ",1) + col.code

'考慮名稱相同出現的異常
end if
On Error Resume Next

next
end if
next
Dim view 'running view
for each view in folder.Views
if not view.isShortcut then
'view.code = view.name

if instr(view.name," ") > 0 then
ls_NameTemp = Mid(view.name,1,instr(view.name," ") - 1 )
else
if instr(view.name," ") > 0 then
ls_NameTemp = Mid(view.name,1,instr(view.name," ") - 1 )
else
ls_NameTemp = view.name
end if
end if

if len(ls_NameTemp) < 8 then
view.name = ls_NameTemp + Space( 8 - len(ls_NameTemp) ) + view.code
else
view.name = ls_NameTemp + Space( 2 ) + view.code
'考慮名稱相同出現的異常
end if
On Error Resume Next

end if
next
' go into the sub-packages
Dim f ' running folder
For Each f In folder.Packages
if not f.IsShortcut then
ProcessFolder f
end if
Next
end sub

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.