VBScript 中的 ICE 示例
此示例代码来自 ICE 自定义操作 (ICE08)。 ICE 验证 Component 表中的每个组件是否具有唯一的 GUID。 如果 Component 表不存在,则不执行任何验证。
Function ICE08()
'Give creation data
Set recInfo=Installer.CreateRecord(1)
recInfo.StringData(0)="ICE08" & Chr(9) & "3"
& Chr(9) & "Created 05/21/98 by <insert
author's name here>"
Message &h03000000, recInfo
'Give last modification date
recInfo.StringData(0)="ICE08" & Chr(9) & "3"
& Chr(9) & "Modified 05/21/98 by <insert
author's name here>"
Message &h03000000, recInfo
'Give description of test
recInfo.StringData(0)="ICE08" & Chr(9) & "3"
& Chr(9) & "Checks for duplicate GUIDs
in Component table"
Message &h03000000, recInfo
'Is there a Component table in the database?
iStat = Database.TablePersistent("Component")
If 1 <> iStat Then
recInfo.StringData(0)="ICE08" & Chr(9) & "2"
& Chr(9) & "Table: 'Component' missing.
ICE08 cannot continue its validation."
& Chr(9) & "https://mypage2"
Message &h03000000, recInfo
ICE08 = 1
Exit Function
End If
'process component table
Set view=Database.OpenView("SELECT
`Component`,`ComponentId` FROM
`Component` ORDER BY `ComponentId`")
view.Execute
Do
Set rec=view.Fetch
If rec Is Nothing Then Exit Do
'compare for duplicate
If lastGuid=rec.StringData(2) Then
rec.StringData(0)="ICE08" & Chr(9)
& "1" & Chr(9) & "Component: [1]
has a duplicate GUID: [2]" & Chr(9)
& "https://mypage2" & Chr(9) &
"Component" & Chr(9) & "ComponentId" & Chr(9) & "[1]"
Message &h03000000,rec
End If
'set for next compare
lastGuid=rec.StringData(2)
Loop
'Return iesSuccess
ICE08 = 1
End Function