Hello Guys,
My Code:
private void button3_Click(object sender, EventArgs e)
{
FileInfo msiFile = new FileInfo(@"C:\temp\WinInstaller\Sample.msi");
WindowsInstaller.Installer inst = (WindowsInstaller.Installer)new Installer();
Database instDb = inst.OpenDatabase(msiFile.FullName, WindowsInstaller.MsiOpenDatabaseMode.msiOpenDatabaseModeTransact);
WindowsInstaller.View view = instDb.OpenView("DELETE FROM `Registry` WHERE `Registry`.`Root`='1'");
view.Execute(null);
view.Close();
instDb.Commit();
}
Am trying to delete a row in "Registry" table in MSI Database:
Registry (s72) Root (i2) Name (L255) Value (L0)
69ADA5050611 1 PATH C:\Program Files\Sample\
Am successfully in deleting the row with the below combination (tired seperatly with every command)
WindowsInstaller.View view = instDb.OpenView("DELETE FROM `Registry` WHERE `Registry`.`Registry`='69ADA5050611'");
WindowsInstaller.View view = instDb.OpenView("DELETE FROM `Registry` WHERE `Registry`.`Name`='PATH'");
WindowsInstaller.View view = instDb.OpenView("DELETE FROM `Registry` WHERE `Registry`.`Value`='C:\Program Files\Sample\'");
But i want to delete the row using "Root" as refernce, am getting error when i use the below command.
WindowsInstaller.View view = instDb.OpenView("DELETE FROM `Registry` WHERE `Registry`.`Root`='1"); --- Getting error when i use Root as reference for deleting row
I get runtime error for the above line "COMException was unhandled OpenView,Sql"
How to delete the row using Root as reference.
Please suggest.
Cheers,
Mohan SPosted Jun 4, 2014, 9:07 AM
Mohan SPosted Jun 4, 2014, 8:54 AM
Am sorry that was a miss from myside while posting the query. actually i used the below line only.,
WindowsInstaller.
View view = instDb.OpenView("DELETE FROM `Registry` WHERE `Registry`.`Root`='1'");But the deletion doenst work if i use HKCU as reference, but work for all above mentioned refrence.
Any suggestion to make it work please.
Cheers,
Khan Abrar AhmedPosted Jun 4, 2014, 8:48 AM
WindowsInstaller.View view = instDb.OpenView("DELETE FROM `Registry` WHERE `Registry`.`Root`='1'");