Windows Installer
От: tantrum США  
Дата: 10.06.05 17:26
Оценка:
Доброго времени суток, увожаемый All!
Возникла проблема, об которую набиваю себе большую шишку на голове.
Проблема такая :
Есть msi инсталляция, которая вызывает метод из DLL-ки (кустом акшэном).
Этот метод из DLL-ки делает следующие вещи :

//1)Получает хендл открытой базы.
hopenbase=MsiGetActiveDatabase(hInstall);

//2)Получает хендл view..

MsiDatabaseOpenView(hopenbase,
__T("INSERT into `Property` (`Property`.`Property`, `Property`.`Value`) VALUES('propDummy', 'valDummy')")

,&hview));

//3)Пытается его запустить...
MsiViewExecute(hview,0)

Ну.. в этом случае возвращается код ошибки ERROR_FUNCTION_FAILED

..В общем, полный облом.
Проблема в правах доступа к базе :
//MSDN :
For read-only access to the current database obtain the database handle by calling MsiGetActiveDatabase


Как это можно обойти? Как из кустом акшн процедуры получить доступ для записи в базу???
Если у кого-то есть решения — плиз помогите.
Функция MsiOpenDatabase может получить хендл с доступом на запись... Но не могу представить, как её можно
использовать из кустом-акшн DLL-процедуры?

Извините за такой экспрессивный мессадж... Буду благодарен за любую помощь!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.