https://bugs.winehq.org/show_bug.cgi?id=54532
--- Comment #12 from Hans Leidekker hans@meelstraat.net --- (In reply to David Kahurani from comment #11)
What happens if you pass MSIDBOPEN_READONLY instead of MSIDBOPEN_CREATE?
Same observation: Database opens, query doesn't run. However, now that you brought it up, the original database created by MsiDB(native) is 20k, when opened with MSIDBOPEN_CREATE, it gets replaced by a database of size 2.5K which indicates there might be some entries in the original database(?) I'm not very sure at this point but the query does indeed fail in both cases.
It is likely that the size difference is caused by database metadata. Both sizes look too small to contain any data to me.
MSIDBOPEN_CREATE creates an empty database and will truncate if the database already exists.