MSIObject = CreateObject Win32::OLE 'WindowsInstaller.Installer';
if (defined ($MSIObject)) {
print "Object Available\n";
$dbReference = $MSIObject->OpenDatabase(
"C:\\temp\\AppsenseApplicationManager.msi", 1
);
$query = "SELECT * FROM Feature WHERE Feature = " . "'Agent'";
$view = $dbReference->OpenView($query);
$results = $view->Execute();
$record = $view->Fetch();
if( $record ) {
for( my $loop = 0; $loop < $record->FieldCount(); $loop++ ) {
print "Field = " . $loop . " = "
. $record->StringData($loop) . "\n";
}
}
else {
print "Record is undefined!\n"
}
####
$newRecord = $MSIObject->CreateRecord( $record->FieldCount() );
$newRecord->StringData(1, 'Agent2');
for (my $loop = 0; $loop < $newRecord->FieldCount(); $loop++) {
print "New Record Field = " . $loop . " = "
. $newRecord->StringData($loop) . "\n";
}
####
$view->Modify(9, $newRecord);
print "View Error = " . $view->GetError() . "\n";
$dbReference->Commit();
$view->Close();
$dbReference = undef;
$reference = undef;
}