前言:word文档和pdm文档和数据库表结构如果不能互相转换,会特别的麻烦。每一个都需要手动生成一遍。
1. word文件生成pdm文件:
- 将word中表结构复制到txt文件,在txt文件中格式如下 :
描述:每个表的第一行为表的name和code,中间用空格隔开。从第二行开始是每个表的字段的name,codehe type,用空格隔开。每个表之间用空行隔开。 - 打开powerdesigner,新建一个物理模型,dbms可以选mysql,如果有sqlserver也可以选择sqlserver,如果没有,可以先选mysql,然后可以修改dbms,此时会有sqlserver.
- 新建好 物理模型后,按“ctrl+shift+x”打开编译运行脚本窗口。脚本中输入:【其中打开文本文档行第一个参数是文档地址:填写要导入的txt文件的地址;第二个参数是读写状态属性:1 是 文件只读 , 2 是 文件写入 , 8 是 文件追加】
Option Explicit
Dim mdl
'获取当前激活模型
Set mdl = ActiveModel
Dim system, file
'创建文件对象
Set system = CreateObject("Scripting.FileSystemObject")
'打开文本文档
Set file = system.OpenTextFile("E:\table.txt", 1)
'表和列
Dim tab, col
'当前行内容,当前行拆分后的内容,和当前行所属表的行数
Dim line_str, lineAry, tab_line_index
tab_line_index = 1
'循环读取文档的每一行
Do While file.AtEndOfStream <> True
line_str = file.ReadLine
'空行是下一个表的开始
if line_str = "" then
'声明下一行是新表的第一行
tab_line_index = 1
else
'新表的第一行,表名行
if tab_line_index = 1 then
'先创建一个表
set tab = mdl.Tables.CreateNew
'拆分第一行信息
lineAry = split(line_str)
'设置表名信息
tab.name = lineAry(0) '表name
tab.code = lineAry(1) '表code
'新表的非第一行,字段行
else
'先创建一列
set col=tab.Columns.CreateNew
'拆分列的信息
lineAry = split(line_str)
'设置列的属性
col.name = lineAry(0) '列name
col.code = lineAry(1) '列code
'col.datatype = lineAry(2) '列类型
end if
'行数往下延伸
tab_line_index = tab_line_index + 1
end if
Loop
file.Close
- 点击窗口下边的“run”运行,进行表的创建。创建好后,会发现左测结构中已经有了你需要的表。