On Sun, 2017-04-09 at 13:12 -0600, Erich E. Hoover wrote:
> +static int open_database( struct msidb_state *state )
> +{
> + LPCWSTR db_mode = state->create_database ? MSIDBOPEN_CREATEDIRECT : MSIDBOPEN_DIRECT;
> + UINT ret;
> +
> + ret = MsiOpenDatabaseW( state->database_file, db_mode, &state->database_handle );
Databases opened in direct mode should always be committed. You should either do that
in following patches, or open them in transacted mode.