PowerDesigner 技巧

PowerDesigner使用MySQL的auto_increment
  ◇問題描述:
  PD怎樣能使主鍵id使用MySQL的auto_increment呢?

   ◇解決方法:
   打開table properties窗口 → columns → 選中id列 → 打開columns properties窗口 → 勾選identity即可
   注意:概念模型沒有此選項,物理模型纔有

  2、PowerDesigner去掉SQL腳本中的雙引號
   ◇問題描述:
   PD生成Oracle數據庫建表SQL時,默認會給表名和字段名加上雙引號,怎樣能去掉SQL腳本中的雙引號呢?

   ◇解決方法:
   把Database → Edit Current DBMS → General → Script → Sql → Format → CaseSensitivityUsingQuote設置爲NO即可

  3、PowerDesigner生成SQL語句時不使用Domain
   ◇問題描述:
   如果在PD中使用了Domain,生成SQLServer的數據庫SQL的腳本中會使用與Domain對應的自定義數據類型,而不會使用 SQLServer自己的數據類型,怎樣能讓PD生成SQL語句時使用SQLServer自己的數據庫類型,而不是Domain對應的自定義數據類型呢?

   ◇解決方法:
   把Database → Edit Current DBMS → General → Script → Objects → Domain → Enable設置爲NO即可

  4、PowerDesigner中設置Entity的默認字體
   ◇問題描述:
   創建Entity時,如果PD默認字體不適合自己的個人習慣,每次創建了一個實體後都要修改實體的字體,非常麻煩,是否有隻修改一次一勞永逸的方法呢?

   ◇解決方法:
   Tools → Display Preferences... → Format → Entity → Modity... → Font → 進行相應修改並保存設置 → Set As Default

  5、PowerDesigner中設置Entity自動調整尺寸大小
   ◇問題描述:
   當給Entity添加了字段或其他修改時,Entiry的顯示尺寸大小不會自動調整,怎樣解決呢?

   ◇解決方法:
   在Entity上點擊右鍵 → 單擊Format...菜單項 → 選擇size標籤頁 → 勾選Auto adjust to text即可



powerdesiner的自增長列,以前都是生成sql語句後,再在自增長列中添加Identity(1,1).找了好久,終於打到了方法 .

1. 如果dbms是MsSql,則選定表後,database-> edit current dbms-> 出現DBMS properties對話框,選擇General頁,左側的樹選擇SQL 2000-> Profile-> Column-> Extended Attributes 下面的ExtIdentityIncrement是步進值,ExtIdentitySeed是起始值,分別設定默認值,後返回。
2. 在表的屬性對話框裏面,選擇Clumns頁,按Ctrl+U,在Idenitity前面打上鉤。如有必要,也可以將
ExtIdentityIncrement和ExtIdentitySeed也打上勾,這樣在設定Idenitity時也可以直接指定起始值和步進值了。
btw:我用的是PD11,剛剛開始學PD,關於Identity的設定也是找了好久。

3. 對於ql server ,在表的屬性對話框裏面,選擇Clumns頁,按Alt+enter進入列的屬性頁面,在右下角勾選Idenitity屬性即可.

取消Name和Code關聯的設置
在設計PDM文件的時候,設計一張表,在填寫欄位的時候,如果我們輸入Name,Code會跟着變化.這個完全是西方人的習慣,因爲他們的Name和 Code都是E文,所以不會出現什麼問題.但是,我們使用的時候,就會很不習慣,Name應該是中文名字,Code纔是資料庫的實際字段名.
下面記錄修改設置的步驟:
Step 1:
菜單欄找到Tools,點開,找到General Options,點擊

Step 2:打開Dialog將Operating modes中的 Name To Code mirroring 將前面的勾去掉

OK!完成


sql語句中表名與字段名前的引號去除:

打開cdm的情況下,進入Tools-Model Options-Naming Convention,把Name和Code的標籤的Charcter case選項設置成Uppercase或者Lowercase,只要不是Mixed Case就行!
或者選擇Database->Edit current database->Script->Sql->Format,有一項CaseSensitivityUsingQuote,它的 comment爲“Determines if the case sensitivity for identifiers is managed using double quotes”,表示是否適用雙引號來規定標識符的大小寫,可以看到右邊的values默認值爲“YES”,改爲“No”即可!
或者在打開pdm的情況下,進入Tools-Model Options-Naming Convention,把Name和Code的標籤的Charcter case選項設置成Uppercase就可以!

在修改name的時候,code的值將跟着變動,很不方便

修改方法:PowerDesign中的選項菜單裏修改,在[Tool]-->[General Options]->[Dialog]->[Operating modes]->[Name to Code mirroring],這裏默認是讓名稱和代碼同步,將前面的複選框去掉就行了。

由pdm生成建表腳本時,字段超過15字符就發生錯誤(oracle)

原因未知,解決辦法是打開PDM後,會出現Database的菜單欄,進入Database - Edit Current DBMS -script-objects-column-maxlen,把value值調大(原爲30),比如改成60。出現表或者其它對象的長度也有這種錯誤的話都可以選擇對應的objects照此種方法更改!
或者使用下面的這種方法:
生成建表腳本時會彈出Database generation提示框:把options - check model的小勾給去掉,就是不進行檢查(不推薦)!
或者可以修改C:\Program Files\Sybase\PowerDesigner Trial 11\Resource Files\DBMS\oracl9i2.xdb文件
修改好後,再cdm轉爲pdm時,選擇“Copy the DBMS definition in model”把把這個資源文件拷貝到模型中。

由CDM生成PDM時,自動生成的外鍵的重命名

PDM Generation Options->Detail->FK index names默認是%REFR%_FK,改爲FK_%REFRCODE%,其中%REFRCODE%指的就是CDM中Relationship的code!另外自動生成的父字段的規則是PDM Generation Options->Detail->FK column name template中設置的,默認是%.3:PARENT%_%COLUMN%,可以改爲Par%COLUMN%表示是父字段!


建立一個表後,爲何檢測出現Existence of index的警告
A table should contain at least one column, one index, one key, and one reference.
可以不檢查 Existence of index 這項,也就沒有這個警告錯誤了!
意思是說沒有給表建立索引,而一個表一般至少要有一個索引,這是一個警告,不用管也沒有關係!

如何防止一對一的關係生成兩個引用(外鍵)
要定義關係的支配方向,佔支配地位的實體(有D標誌)變爲父表。
在cdm中雙擊一對一關係->Detail->Dominant role選擇支配關係

修改報表模板中一些術語的定義
即文件:C:\Program Files\Sybase\PowerDesigner Trial 11\Resource Files\Report Languages\Chinese.xrl
Tools-Resources-Report Languages-選擇Chinese-單擊Properties或雙擊目標
修改某些對象的名稱:Object Attributes\Physical Data Model\Column\
ForeignKey:外鍵
Mandatory:爲空
Primary:主鍵
Table:表
用查找替換,把“表格”替換成“表”
修改顯示的內容爲別的:Values Mapping\Lists\Standard,添加TRUE的轉化列爲是,FALSE的轉化列爲空
另外Report-Title Page裏可以設置標題信息

PowerDesigner11中批量根據對象的name生成comment的腳本

'******************************************************************************
'* File: name2comment.vbs
'* Purpose: Database generation cannot use object names anymore
' in version 7 and above.
' It always uses the object codes.
'
' In case the object codes are not aligned with your
' object names in your model, this script will copy
' the object Name onto the object comment for
' the Tables and Columns.
'
'* Title: 把對象name拷入comment屬性中
'* Version: 1.0
'* Author:
'* 執行方法:PD11 -- Open PDM -- Tools -- Execute Commands -- Run Script
'******************************************************************************

Option 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 Tab 'running table
for each Tab in folder.tables
if not tab.isShortcut then
tab.comment = tab.name
Dim col ' running column
for each col in tab.columns
col.comment= col.name
next
end if
next

Dim view 'running view
for each view in folder.Views
if not view.isShortcut then
view.comment = view.name
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



PowerDesigner 生成SQL的Existence of refernce錯誤問題
現象:用PowerDesigner生成SQL語句時,提示Existence of refernce錯誤。
原因:該表沒有與其他表的關聯(如外鍵等),而PowerDesigner需要存在一個refernce才能生成SQL.
解決方法:
在工具欄空白處右鍵打開Palette面板,選中Link/Extended Dependency 按鈕,然後在提示出錯的表上添加到自己的Dependency。
重新生成SQL,你將發現剛纔提示的錯誤沒有了,問題解決。

利用PowerDesigner批量生成測試數據
主要解決方法:
A:在PowerDesigner 建表
B:然後給每一個表的字段建立相應的摘要文件
步驟如下:
Model->Test Data Profiles配置每一個字段摘要文件General:輸入Name、Code、
選擇Class(數字、字符、時間)類型
選擇Generation Source: Automatic、List、ODBC、File Detail:配置字段相關信息
所有字段摘要文件配置完成後雙擊該表->選擇字段->Detail->選擇Test Data Parameters 摘要文件如果字段值與其它字段有關係在: Computed Expression 中輸入計算列--生成測試數據:
DataBase->Generation Test Data->
選擇:Genration 類型(Sript、ODBC)
Selection(選擇要生成的表)
Test Data Genration(Default number of rows 生成記錄行數)

1.使用PD12時出現以下錯誤:

Reference constraint name maximum

length is limited to 30 characters

Key constraint name maximum length

is limited to 30 characters

Table code maximum length

Column code maximum length

……

導致生成建表SQL時通不過,細究原因原來是默認設置的問題,改下就可以了。

調整以下參數:

Database=>Edit current DBMS 數據庫類型::Script\Objects\MaxConstLen value=>255

Database=>Edit current DBMS 數據庫類型::Script\Objects\Table\Maxlen value=>255

Database=>Edit current DBMS 數據庫類型::Script\Objects\Column\Maxlen value=>255

但是要注意的是,表名、列名、主鍵等不要超過30個字符,否則Oracle不認。

2.附:生成數據庫腳本

Database=>Generate database

-----------------------------

-----------------------------

默認生成的SQL語句(表名、字段名等)都帶雙引號,導致用SQLPlus插入Oracle數據庫時表名與表列都帶""號,要解決這個問題,在數據庫中做如下設置:

Database-> Edit Current DBMS...-> Script-> Sql->

Format-> CaseSensitivityUsingQuote 改爲No

3.如何在powerDesigner中給字段賦默認值

雙擊表,出現column列表,雙擊要設置的列的左邊的灰色框,應該會彈出新的窗口,然後在新窗口上選擇standard checks ,裏面有default的


我一直用的是Oracle數據庫,所以在設計CDM的時候,就沒有選定表主鍵自動增長。這是SQL Server和MYSQL纔有的方式。Oracle中一般是採用SEQUENCE的方式來處理主鍵增長的問題的。相對寫程序來說,Oracle的處理方式比較複雜一點。

打開PDM,選中一張表,雙擊打開表屬性,選擇Columns列,選中主鍵字段,雙擊打開,界面的最下方右下角有一個Identity,選中這個之後,生成的表主鍵就是自動增長的了。

要一個表一個表的手工去修改。這要改到什麼時候啊!

在google上搜索了一下,發現居然有很多人碰到這個問題,還有一個vbs的腳本執行一次就解決了。大家可以去搜索一下,腳本名字叫SetIdentity.vbs。

在PD中執行腳本方法也很簡單,Tools——Excecute Commands——Edit/Run Scripts。

另外還有一個腳本,是用來把字段的name統一設置爲數據庫字段的comments字段內容的name2comment.vbs代碼。也很好用。(一般name都是中文描述,code就是代碼)



本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/yycc2008/archive/2009/05/18/4198230.aspx



2、由pdm生成建表腳本時,字段超過15字符就發生錯誤(oracle)
原因未知,解決辦法是打開PDM後,會出現Database的菜單欄,進入Database - Edit Current DBMS -script-objects-column-maxlen,把value值調大(原爲30),比如改成60。出現表或者其它對象的長度也有這種錯誤的話都可以選擇對應的objects照此種方法更改!

或者使用下面的這種方法:
生成建表腳本時會彈出Database generation提示框:把options - check model的小勾給去掉,就是不進行檢查(不推薦)!
或者可以修改C:Program FilesSybasePowerDesigner Trial 11Resource FilesDBMSoracl9i2.xdb文件
修改好後,再cdm轉爲pdm時,選擇“Copy the DBMS definition in model”把把這個資源文件拷貝到模型中。

3、生成的建表腳本中如何把對象的雙引號去掉?
打開cdm的情況下,進入Tools-Model Options-Naming Convention,把Name和Code的標籤的Charcter case選項設置成Uppercase或者Lowercase,只要不是Mixed Case就行!
或者選擇Database->Edit current database->Script->Sql->Format,有一項CaseSensitivityUsingQuote,它的comment爲“Determines if the case sensitivity for identifiers is managed using double quotes”,表示是否適用雙引號來規定標識符的大小寫,可以看到右邊的values默認值爲“YES”,改爲“No”即可!
或者在打開pdm的情況下,進入Tools-Model Options-Naming Convention,把Name和Code的標籤的Charcter case選項設置成Uppercase就可以!

4、建立一個表後,爲何檢測出現Existence of index的警告
A table should contain at least one column, one index, one key, and one reference.
可以不檢查 Existence of index 這項,也就沒有這個警告錯誤了!
意思是說沒有給表建立索引,而一個表一般至少要有一個索引,這是一個警告,不用管也沒有關係!

5、創建一個表在修改字段的時候,一修改name的內容,code也跟着變化,如何讓code不隨着name變化
Name和Code 的右側都有一個按鈕“=”,如果需要不同步的話,把這個按鈕彈起來就可以了。
Tools->General Options->Dialog->Name to Code Mirroring (去掉)

6、由CDM生成PDM時,自動生成的外鍵的重命名
PDM Generation Options->Detail->FK index names默認是%REFR%_FK,改爲FK_%REFRCODE%,其中%REFRCODE%指的就是CDM中Relationship的code!另外自動生成的父字段的規則是PDM Generation Options->Detail->FK column name template中設置的,默認是%.3:PARENT%_%COLUMN%,可以改爲Par%COLUMN%表示是父字段!

7、如何防止一對一的關係生成兩個引用(外鍵)
要定義關係的支配方向,佔支配地位的實體(有D標誌)變爲父表。
在cdm中雙擊一對一關係->Detail->Dominant role選擇支配關係

8、修改報表模板中一些術語的定義
即文件:C:Program FilesSybasePowerDesigner Trial 11Resource FilesReport LanguagesChinese.xrl
Tools-Resources-Report Languages-選擇Chinese-單擊Properties或雙擊目標
修改某些對象的名稱:Object AttributesPhysical Data ModelColumn
ForeignKey:外鍵
Mandatory:爲空
Primary:主鍵
Table:表
用查找替換,把“表格”替換成“表”
修改顯示的內容爲別的:Values MappingListsStandard,添加TRUE的轉化列爲是,FALSE的轉化列爲空
另外Report-Title Page裏可以設置標題信息
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章