Здравствуйте, tantrum, Вы писали:
Проблема в том, что MsiGetActiveDatabase дает только read-only handle, а MsiOpenDatabase для custom action dll не подходит. Смысл этого в том, что неразумно менять базу данных в момент инсталляции, и это, согласись, правильно.
Единственное что, следуя той же логике, можно менять — user-defined Properties.
Для этого есть функция MsiSetProperty.
По-моему должно сработать.
P.S.
Из зачем этот SQL городить? К тому же как-то он подозрительно выглядит... (Property 3 раза повторяется, я бы написал один раз, к тому же я вставляю записи не так: MsiCreateRecord, MsiRecordSet*, MsiViewModify(MSIMODIFY_INSERT), а при создании вью только SELECT нужные мне колонки).