Sample ICE in VBScript
This sample code is from an ICE custom action ( ICE08). The ICE validates that every component in the Component table has a unique GUID. No validation is done if the Component table does not exist.
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) & "http://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) & "http://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
Send comments about this topic to Microsoft
Build date: 2/3/2012