﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-CONAN ZONE-文章分类-PowerDesigner</title><link>http://www.blogjava.net/conans/category/32438.html</link><description>你越挣扎我就越兴奋</description><language>zh-cn</language><lastBuildDate>Sat, 21 Jun 2008 00:05:00 GMT</lastBuildDate><pubDate>Sat, 21 Jun 2008 00:05:00 GMT</pubDate><ttl>60</ttl><item><title>powerDesigner使用技巧(转)</title><link>http://www.blogjava.net/conans/articles/209601.html</link><dc:creator>CONAN</dc:creator><author>CONAN</author><pubDate>Fri, 20 Jun 2008 15:13:00 GMT</pubDate><guid>http://www.blogjava.net/conans/articles/209601.html</guid><description><![CDATA[最近用powerDesinger遇到一些小问题，遇到好几次同样的问题了，写在这里，以备查用：<br />
<br />
--------------------------------------------------------------------------------------------------<br />
<br />
sql语句中表名与字段名前的引号去除：<br />
<br />
打开cdm的情况下，进入Tools－Model Options－Naming Convention，把Name和Code的标签的Charcter case选项设置成Uppercase或者Lowercase，只要不是Mixed Case就行！<br />
或者选择Database-&gt;Edit current database-&gt;Script-&gt;Sql-&gt;Format，有一项CaseSensitivityUsingQuote，它的 comment为&#8220;Determines if the case sensitivity for identifiers is managed using double quotes&#8221;，表示是否适用双引号来规定标识符的大小写， 可以看到右边的values默认值为&#8220;YES&#8221;,改为&#8220;No&#8221;即可！<br />
或者在打开pdm的情况下，进入Tools－Model Options－Naming Convention，把Name和Code的标签的Charcter case选项设置成Uppercase就可以！<br />
<br />
&nbsp;<br />
<br />
在修改name的时候，code的值将跟着变动，很不方便<br />
<br />
修改方法：PowerDesign中的选项菜单里修改，在[Tool]--&gt;[General Options]-&gt;[Dialog]-&gt;[Operating modes]-&gt;[Name to Code mirroring],这里默认是让名称和代码同步，将前面的复选框去掉就行了。<br />
<br />
&nbsp;<br />
<br />
由pdm生成建表脚本时，字段超过15字符就发生错误（oracle）<br />
<br />
&nbsp; 原因未知，解决办法是打开PDM后，会出现Database的菜单栏，进入Database － Edit Current DBMS －script－objects－column－maxlen，把value值调大(原为30)，比如改成60。出现表或者其它对象的长度也有这种错误的话都可以选择对应的objects照此种方法更改！<br />
或者使用下面的这种方法：<br />
&nbsp;&nbsp;&nbsp;&nbsp; 生成建表脚本时会弹出Database generation提示框：把options － check model的小勾给去掉，就是不进行检查（不推荐）！<br />
&nbsp;&nbsp;&nbsp; 或者可以修改C:\Program Files\Sybase\PowerDesigner Trial 11\Resource Files\DBMS\oracl9i2.xdb文件<br />
&nbsp;&nbsp;&nbsp;&nbsp; 修改好后，再cdm转为pdm时，选择&#8220;Copy the DBMS definition in model&#8221;把把这个资源文件拷贝到模型中。<br />
<br />
&nbsp;<br />
<br />
由CDM生成PDM时，自动生成的外键的重命名<br />
<br />
PDM Generation Options-&gt;Detail-&gt;FK index names默认是%REFR%_FK，改为FK_%REFRCODE%，其中%REFRCODE%指的就是CDM中Relationship的code！另外自动生成的父字段的规则是PDM Generation Options-&gt;Detail-&gt;FK column name template中设置的，默认是%.3:PARENT%_%COLUMN%，可以改为Par%COLUMN%表示是父字段！<br />
<br />
&nbsp;<br />
<br />
&nbsp;建立一个表后,为何检测出现Existence of index的警告<br />
&nbsp;&nbsp;&nbsp; A table should contain at least one column, one index, one key, and one reference.<br />
可以不检查 Existence of index 这项，也就没有这个警告错误了！<br />
意思是说没有给表建立索引，而一个表一般至少要有一个索引，这是一个警告，不用管也没有关系！<br />
<br />
&nbsp;<br />
<br />
如何防止一对一的关系生成两个引用（外键）<br />
要定义关系的支配方向，占支配地位的实体（有D标志）变为父表。<br />
在cdm中双击一对一关系-&gt;Detail-&gt;Dominant role选择支配关系<br />
<br />
&nbsp;<br />
<br />
修改报表模板中一些术语的定义<br />
即文件：C:\Program Files\Sybase\PowerDesigner Trial 11\Resource Files\Report Languages\Chinese.xrl<br />
Tools－Resources－Report Languages－选择Chinese－单击Properties或双击目标<br />
修改某些对象的名称：Object Attributes\Physical Data Model\Column\<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ForeignKey：外键<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Mandatory：为空<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Primary：主键<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Table：表<br />
用查找替换，把&#8220;表格&#8221;替换成&#8220;表&#8221;<br />
修改显示的内容为别的：Values Mapping\Lists\Standard，添加TRUE的转化列为是，FALSE的转化列为空<br />
另外Report－Title Page里可以设置标题信息<br />
<br />
&nbsp;<br />
<br />
PowerDesigner11中批量根据对象的name生成comment的脚本<br />
<br />
'******************************************************************************<br />
'* File:&nbsp;&nbsp;&nbsp;&nbsp; name2comment.vbs<br />
'* Purpose:&nbsp; Database generation cannot use object names anymore<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; in version 7 and above.<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; It always uses the object codes.<br />
'<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; In case the object codes are not aligned with your<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; object names in your model, this script will copy<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; the object Name onto the object comment for<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; the Tables and Columns.<br />
'<br />
'* Title:&nbsp;&nbsp;&nbsp; 把对象name拷入comment属性中<br />
'* Version:&nbsp; 1.0<br />
'* Author：<br />
'* 执行方法：PD11 -- Open PDM -- Tools --&nbsp; Execute Commands -- Run Script<br />
'******************************************************************************<br />
<br />
Option Explicit<br />
ValidationMode = True<br />
InteractiveMode = im_Batch<br />
<br />
Dim mdl ' the current model<br />
<br />
' get the current active model<br />
Set mdl = ActiveModel<br />
If (mdl Is Nothing) Then<br />
&nbsp;&nbsp; MsgBox "There is no current Model"<br />
ElseIf Not mdl.IsKindOf(PdPDM.cls_Model) Then<br />
&nbsp;&nbsp; MsgBox "The current model is not an Physical Data model."<br />
Else<br />
&nbsp;&nbsp; ProcessFolder mdl<br />
End If<br />
<br />
' This routine copy name into code for each table, each column and each view<br />
' of the current folder<br />
Private sub ProcessFolder(folder)<br />
&nbsp;&nbsp; Dim Tab 'running&nbsp; table<br />
&nbsp;&nbsp; for each Tab in folder.tables<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if not tab.isShortcut then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tab.comment = tab.name<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim col ' running column<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for each col in tab.columns<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; col.comment= col.name<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; next<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end if<br />
&nbsp;&nbsp; next<br />
<br />
&nbsp;&nbsp; Dim view 'running view<br />
&nbsp;&nbsp; for each view in folder.Views<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if not view.isShortcut then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; view.comment = view.name<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end if<br />
&nbsp;&nbsp; next<br />
<br />
&nbsp;&nbsp; ' go into the sub-packages<br />
&nbsp;&nbsp; Dim f ' running folder<br />
&nbsp;&nbsp; For Each f In folder.Packages<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if not f.IsShortcut then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ProcessFolder f<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end if<br />
&nbsp;&nbsp; Next<br />
end sub<br />
<br />
&nbsp;<br />
<br />
PowerDesigner 生成SQL的Existence of refernce错误问题<br />
现象：用PowerDesigner生成SQL语句时，提示Existence of refernce错误。<br />
原因：该表没有与其他表的关联(如外键等），而PowerDesigner需要存在一个refernce才能生成SQL.<br />
解决方法：<br />
&nbsp;&nbsp;&nbsp; 在工具栏空白处右键打开Palette面板，选中Link/Extended Dependency 按钮，然后在提示出错的表上添加到自己的Dependency。<br />
&nbsp;&nbsp;&nbsp; 重新生成SQL,你将发现刚才提示的错误没有了，问题解决。<br />
&nbsp;&nbsp; <br />
利用PowerDesigner批量生成测试数据<br />
主要解决方法:<br />
A:在PowerDesigner 建表<br />
B:然后给每一个表的字段建立相应的摘要文件<br />
步骤如下:<br />
Model-&gt;Test Data Profiles配置每一个字段摘要文件General:输入Name、Code、<br />
选择Class(数字、字符、时间)类型<br />
选择Generation Source： Automatic、List、ODBC、File Detail:配置字段相关信息<br />
所有字段摘要文件配置完成后双击该表-&gt;选择字段-&gt;Detail-&gt;选择Test Data Parameters 摘要文件如果字段值与其它字段有关系在: Computed Expression 中输入计算列--生成测试数据:<br />
DataBase-&gt;Generation Test Data-&gt;<br />
选择:Genration 类型(Sript、ODBC)<br />
&nbsp;&nbsp;&nbsp;&nbsp; Selection(选择要生成的表)<br />
&nbsp;&nbsp;&nbsp;&nbsp; Test Data Genration(Default number of rows 生成记录行数)<br />
<img src ="http://www.blogjava.net/conans/aggbug/209601.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/conans/" target="_blank">CONAN</a> 2008-06-20 23:13 <a href="http://www.blogjava.net/conans/articles/209601.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>