数据库:SQL2000
PD版本:16
在PowerDesigner之设置(1)中,创建表的表头注释部分由于中文的原因无法定长,这里我们用PD的扩展方法来解决。
具体方法如下:
-
主菜单DataBase->Edit Current DBMS->Profile-> Table-> Extended Attributes右键new菜单添加一个属性,下面添加一个TableName30属性,勾选Computed,则会自动显示方法标签页,这个方法用来重写表名行注释,这里就用了只读方法就可以了,勾选Read Only。
-
切换到Global Script标签页,这里面的是全局脚本,我们添加一个获取字符串中汉字个数的方法GetHanziNum,如下:
'获取字符串中汉字总数 Function GetHanziNum(sStr) '汉字总数 Dim Sum '循环数 Dim c '表名中字符 Dim Char Sum = 0 For c = 1 To Len(sStr) Char = Mid(sStr, c, 1) If (AscW(Char) > -40870 And AscW(Char) < -19967) Or (AscW(Char) < 40870 And AscW(Char) > 19967) Then Sum = Sum + 1 End If Next GetHanziNum=Sum End Function
-
切换到Get Method Script标签页,写该属性的返回值。
Function %Get%(obj) ' Implement your getter method on <obj> here ' and return the value '表名名称,表名代码 Dim tableName,tableCode '拼接字符串 Dim str tableName=obj.name tableCode=obj.code str="/* Table: "_ & left(tableCode & " ",15)_ & left(tableName & " ",39-GetHanziNum(tableName))_ & "*/" %Get% = str End Function
-
修改table的create值。
主菜单DataBase->Edit Current DBMS->Script->Objects->Table->Create中Value值修改。
将其中的表头注释部分修改为:
/*==============================================================*/
%TableName30%
/*==============================================================*/
综上,大功告成!
下面展现下效果:
汉字与英文结合也不受影响。如下: