Удаление записей из таблицы RemoveRegistry - PullRequest
0 голосов
/ 07 апреля 2011

У меня есть некоторые ресурсы реестра, которые нужно удалить при установке, но не в том случае, если есть другие компоненты, которые нуждаются в них.[В идеале я бы сделал это, связав ресурсы с общими компонентами, но у меня здесь нет такой опции].

У меня есть некоторый общий код для запуска команд SQL (включая операторы DELETE), который отлично работаетвезде, но в данном случае оператор DELETE проходит нормально, но записи просто не удаляются.Я написал запрос, чтобы фактически проверить состояние таблицы после выполнения команды DELETE, и похоже, что только первый элемент записи базы данных фактически удаляется, а остальные поля в записи остаются без изменений.Когда я распечатываю записи таблицы, я получаю такие вещи, где первое поле пустое

, 2, ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ \ xxxxxxxInstall, Version, yyyyyyy ,,,

MSI (s) (A8! 5C) [16: 49: 19: 628]: Пул строк базы данных поврежден.

Я изменил тактику и вместо того, чтобы просто выполнить команду DELETE, я сделал MsiViewModify для каждогозапись с MSIMODIFY_DELETE, но я получаю ту же проблему.

В конце мне пришлось просто отредактировать записи, чтобы они ссылались на другое значение, которое, я знаю, не будет существовать, но я неЭто по понятным причинам.

У кого-нибудь есть предложения по этому поводу?В MSI 1.0 была очень старая ошибка, связанная с пулами строк, но связанная с необходимостью фиксации файлов базы данных MSI, которая не применяется в контексте настраиваемого действия, когда вы получаете дескриптор, вызывая GetActiveDatabase ().

1 Ответ

1 голос
/ 07 апреля 2011

Я почти уверен, что вспомнил, что где-то читал, что поддержка MSI SQL для временных таблиц и строк является аддитивной, а не вычитающей.В документе SDK вы заметите, что только команда INSERT INTO имеет опцию TEMPORARY, а DELETE FROM - нет.

Вам действительно нужно лучше разобраться в организации ваших компонентов, чтобы ресурсы реестра могли быть связаны со всемииз различных функций, которые имеют компоненты с ресурсами, которые зависят от разделов реестра.

Синтаксис SQL

...