cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
RaviPatel
Level 3

Accessing the InstallShield Database at Run Time

https://community.flexera.com/t5/InstallShield-Knowledge/Accessing-the-MSI-Database-at-Run-Time/tac-p/98842

 As per the above article, I am able to get values of the MSI database table for ComboBox or any MSI database table. However, when I tried to run on the InstallShield specific table (tables starts with IS), it throws the following error: 

1615 (Error.BadQuerySyntax) \"SELECT * FROM ISProductConfigurationInstance\". 

Is there any way to access values of InstallShield specific tables?

NOTE: We are using managed code (c# standard action and Install.ActiveDatabase.OpenView API) to get database values. 

 

0 Kudos
(5) Replies
cvirata
Revenera Community Admin Revenera Community Admin
Revenera Community Admin

Hi @RaviPatel,

Looks like your question is specific to the InstallShield product. I will go ahead and move your question to the appropriate forum so you can get the assistance you need. 

Regards,

Christine Virata-Stone

Flexera Community

0 Kudos
Jenifer
Flexera Alumni

Hi @RaviPatel ,

 

You can't query installshield specific tables from MSI table since MSI database table will only contain tables specific to Windows installer's pre-defined tables.

InstallShield specific tables are used to interpret given values during build time and be saved in MSI specific table values so those tables won't be present in MSI database.

 

Thanks,

Jenifer

0 Kudos

@Jenifer Thanks for your response. Is there any way to determine values of tables which are pertaining to InstallShield and not a part of MSI database? I just want to determine no of instances configured in the release where Multiple Instances are defined.
0 Kudos

Hi @RaviPatel ,

 

I dont think so that would be possible in run-time.Just curious about use-case or scenario so that we could go for suggestions during build time or some customization like custom-action or script related stuff.

 

Thanks,

Jenifer

0 Kudos

@RaviPatel ,

Setup.exe launcher handles multiple Instances support, hence MSI tables will not store this information.

During build process, InstallShield writes this information (present in ISProductConfigurationInstance table in ISM file) to the setup.ini as below.

[Instances]
count=3
key0=InstanceId1
key1=InstanceId2
key2=InstanceId3
[InstanceId1]
InstanceId=1
ProductCode={8E2CED43-943E-44BE-829E-AA3B534DDACC}
[InstanceId2]
InstanceId=2
ProductCode={6D103F95-9942-4E62-B534-027CF68E31C5}
[InstanceId3]
InstanceId=3
ProductCode={8B122D1B-A089-4CFF-AB7E-5900160ECE8D}


As @Jenifer mentioned, you can read this information from your managed custom action.