$MSIObject = CreateObject Win32::OLE 'WindowsInstaller.Installer'; if (defined ($MSIObject)) { print "Object Available\n"; $dbReference = $MSIObject->OpenDatabase("C:\\temp\\AppsenseApplica +tionManager.msi", 1); # Create SQL query to obtain required data $query = "SELECT * FROM Feature WHERE Feature = " . "'Agent'"; # Create a database view based on the query $view = $dbReference->OpenView($query); # Execute the query $results = $view->Execute(); # fetch the first data set based on the query $record = $view->Fetch(); if ($record) { for (my $loop = 0; $loop < $record->FieldCount(); $loop++) { print "Field = " . $loop . " = " . $record->StringData($lo +op) . "\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->Stri +ngData($loop) . "\n"; } $view->Modify(9, $newRecord); print "View Error = " . $view->GetError() . "\n"; $dbReference->Commit(); $view->Close(); $dbReference = undef; $reference = undef;
In reply to Re^2: Help with OLE module and MSI files
by perls_of_joy
in thread Help with OLE module and MSI files
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |