编写Powerdesigner脚本,快速生成数据库表

mac2022-06-30  62

 

PowerDesigner支持VBScript脚本,帮助生成数据库模型中的对象。具体功能入口在菜单Tools-->Execute Commands-->Edit/Run Script,下面是我写的一个快速生成数据库表的脚本,在我的项目实践中,因为有太多的表要从需求调研报告中提取出来,在PD中一个字段一个字段的输入实在太费劲了,就想了这个办法偷赖。代码如下:

Option Explicit

'-----------------------------------------------------------------------------' Initialization'-----------------------------------------------------------------------------Dim system, fileSet system = CreateObject("Scripting.FileSystemObject")

' Open mode constants...Dim ForReading, ForWriting, ForAppendingForReading   = 1 ' Open a file for reading only. You can't write to this file. ForWriting   = 2 ' Open a file for writing. ForAppending = 8 ' Open a file and write to the end of the file.

'-----------------------------------------------------------------------------' Main function'-----------------------------------------------------------------------------

Set file = system.OpenTextFile("D:\table.txt", ForReading)Dim noLineDim Tab  'tableValidationMode = TrueDim mdl ' the current modelDim Coldim dm, dmstrDim SSSDim isNewTable' get the current active modelSet mdl = ActiveModel

   For each dm in mdl.domains      If Not dm.isShortcut Then         If dm.code = "dm_pk" Then            Exit For         End If      End If   Next      For each dmstr in mdl.domains      If Not dmstr.isShortcut Then         If dmstr.code = "dm_string" Then            Exit For         End If      End If   Next  

set Tab = mdl.Tables.CreateNewset Col=tab.Columns.CreateNewCol.name = "ID"Col.Code = "ID"col.domain=dmCol.Primary = TrueisNewTable = TrueDo While file.AtEndOfStream <> True   SSS = file.ReadLine   if isNewTable = True then     if SSS <> "" then       isNewTable = False       tab.name = SSS     end if   elseif SSS = "" then     set Tab = mdl.Tables.CreateNew     set Col=tab.Columns.CreateNew     Col.name = "ID"     Col.Code = "ID"     col.domain=dm     Col.Primary = True     isNewTable = True   else       set Col=tab.Columns.CreateNew     Col.name = SSS     col.domain=dmstr   end if  Loopfile.Close

这样我只要将所需的实段名和表名放在文本文件中,不同的表以空行分开,就可以自动增加表了。

不过生成的字段名都是Column1...ColumnN,然后再一个一个改吧。

转载于:https://www.cnblogs.com/antony1029/archive/2006/02/15/331303.html

最新回复(0)