日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

根据excel定义的表机构,导入powerdesigner

發布時間:2023/12/15 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 根据excel定义的表机构,导入powerdesigner 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

在參考網上一些資料的基礎上,自己整理。

定義的表機構

在powerdesigner調用的過程

工具>execute commands>edit/run script 執行以下代碼

Option Explicit

Dim mdl ' the current model
Set mdl = ActiveModel
If (mdl Is Nothing) Then
?? MsgBox "There is no Active Model"
End If

Dim HaveExcel
Dim RQ
Dim strFileNameForFilter
Dim cti
strFileNameForFilter="文件的位置.xlsm"
RQ = vbYes 'MsgBox("Is Excel Installed on your machine ?", vbYesNo + vbInformation, "Confirmation")
If RQ = vbYes Then
?? HaveExcel = True
?? ' Open & Create Excel Document
?? Dim x1,xlBookFilter,xlSheetsFilter,xlSheetsFilterName? '
?
?? Set x1 = CreateObject("Excel.Application")
?? Set xlBookFilter = x1.Workbooks.Open(strFileNameForFilter)
?? xlBookFilter.Activate
?? Dim i, Count
?? Count = xlBookFilter.Sheets.Count
?? For i = 2 To Count
??????? 'xlSheetsFilter = xlBookFilter.Sheets(i)
??????? 'MsgBox xlSheetsFilter
??????? xlBookFilter.Sheets(i).Activate?? '指定要打開的sheet名稱
??????? cti = i
??????? a x1,mdl,cti
??? Next
Else
?? HaveExcel = False
End If

a x1, mdl, cti
sub a(x1, mdl, cti)
dim rwIndex? ?
dim tableName
dim colname
dim table
dim col
dim count
on error Resume Next

set table = mdl.Tables.CreateNew???? '創建表
For rwIndex = 2 To 4?? '指定要遍歷的Excel行標? 從第二行開始,遍歷表名
??????? With x1.Workbooks(1).Worksheets(i)
??????????? If .Cells(rwIndex, 2).Value = "" Then '如果遍歷到第二列為空,則退出
?????????????? Exit For
??????????? End If
??????????? If .Cells(rwIndex, 2).Value = "表ID" Then ?
?????????????? table.Name = .Cells(rwIndex , 3).Value '指定表名,第三列的值? ?
?????????????? count = count + 1 ?
??????????? elseIf .Cells(rwIndex, 2).Value = "表名" Then
???????????????? table.Code = .Cells(rwIndex , 3).Value '指定表中文名,第三列的值 ?
??????????? else
???????????????? table.Comment = .Cells(rwIndex , 3).Value '指定表注釋,第三列的值
??????????? End If?? ?
??????? End With
Next

For rwIndex = 7 To 100?? '指定要遍歷的Excel行標? 由于第1行是表頭,從第2行開始
??????? With x1.Workbooks(1).Worksheets(i)
??????????? If .Cells(rwIndex, 3).Value = "" Then '如果遍歷到第三列為空,則退出
?????????????? Exit For
??????????? End If
?????????? ?
???????????

??????????? set col = table.Columns.CreateNew?? '創建一列/字段
??????????? col.Name = .Cells(rwIndex, 3).Value?? '指定列說明
??????????? col.Code = .Cells(rwIndex, 4).Value?? '指定列名
??????????? col.DataType = .Cells(rwIndex, 7).Value '指定列數據類型并且指定長度?
??????????? col.Length = .Cells(rwIndex, 6).Value? '指定列長度,這一列沒用上
??????????? col.Comment = .Cells(rwIndex, 17).Value? '指定列長度

??????????? If .Cells(rwIndex, 9).Value ="Y" then
????????????? col.Mandatory? = True???????????????? '指定列是否可空,true不可為空
??????????? End If
??????????? If .Cells(rwIndex, 10).Value ="1" then
????????????? col.Primary = True???????????????????? '指定主鍵
??????????? End If

??????? End With
Next

'MsgBox "生成數據表結構共計 " + CStr(count), vbOK + vbInformation, "表"

Exit Sub
End sub

注意:在PD中執行腳本的時候,如果提示:no Active Model,是因為沒創建物理模型( Physical Data Model ),因為 不同的pd模型在使用時 是不同的編碼-所以這里測試使用Physical Data Model

導入成功后,再生成可執行的ORA-sql的可執行語句,步驟:

菜單欄database->generation Database選擇database-generation,導出可執行sql

轉載于:https://my.oschina.net/maojindaoGG/blog/745848

總結

以上是生活随笔為你收集整理的根据excel定义的表机构,导入powerdesigner的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。