Exemple d’ICE dans VBScript
Cet exemple de code provient d’une action personnalisée ICE (ICE08). L’ICE valide que chaque composant de la table Component a un GUID unique. Aucune validation n’est effectuée si la table Component n’existe pas.
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