You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Fairly new to MSIs here. Working towards extracting the same information which is available via Orca graphical interfaces.
I believe I've hit a bug within _msi.View class, namely the inability to safely determine the number of records in my result.
Examples I've found depicting how to obtain query results lead me to believe _msi.View.Fetch() will return None if no more rows exist. My development using python 2.7.11, Windows 7 enterprise and 2.7.13, Windows Server 2016, has shown Fetch() will raise a msilib.MSIError when no more rows are available. MSIError is commonly used within msilib which means explicit error handling (or leniency in this case) may incorrectly suppress other error scenarios.
Entering a bug with the hope either a patch addresses this issue or documentation can be updated to reflect proper usage. Example provided below.
>>> import msilib
>>> db = msilib.OpenDatabase("msi-1.0.0.8.msi", msilib.MSIDBOPEN_READONLY)
>>> v = db.OpenView("select * from Property")
>>> v.Execute(None)
>>> while 1:
... r = v.Fetch()
... if not r:break
... print r.GetString(1)
...
UpgradeCode
WixSharp_UI_INSTALLDIR
WixSharp_InstallDialogs
WIXUI_INSTALLDIR
Manufacturer
ProductCode
ProductLanguage
ProductName
ProductVersion
SecureCustomProperties
Traceback (most recent call last):
File "<stdin>", line 2, in <module>
_msi.MSIError: unknown error 103
Thanks for the report, Jason. I think this is a duplicate of bpo-1102. The second patch (_msi_fetch.patch.txt) there should fix your problem (if I read MSDN correctly, 103 is ERROR_NO_MORE_ITEMS.)
I don't have access to a Windows box at the moment so could you please verify my theory so we can close this as a duplicate?
Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.
Show more details
GitHub fields:
bugs.python.org fields:
The text was updated successfully, but these errors were encountered: