c #: Deployment.WindowsInstaller.BadQuerySyntaxException: синтаксис SQL-запроса недопустим или не поддерживается - PullRequest
0 голосов
/ 03 июля 2018

Моя программа проста.

Чего я хочу достичь в этом конкретном методе -

  1. Найти общее количество ярлыков
  2. Удалить связанные с документом ярлыки (например, .pdf, .txt, .chm)

Я использую Microsoft.Deployment.WindowsInstaller для чтения MSI-файлов и создания MST.

Ошибка в следующих частях кода:

count = (int)database.ExecuteScalar("SELECT COUNT(*) FROM Shortcut");
....
database.Execute("DELETE FROM Shortcut WHERE `Shortcut`.`Target` LIKE '%.chm'");
Console.WriteLine("chm deleted");

Я получаю ошибку:

Необработанное исключение: Microsoft.Deployment.WindowsInstaller.BadQuerySyntaxException: синтаксис SQL-запроса недопустим или не поддерживается.

Может ли кто-нибудь помочь мне с этим?

Ответы [ 2 ]

0 голосов
/ 03 июля 2018

Онлайн : Как утверждает Фил, синтаксис MSI SQL является подмножеством нормального SQL . Информацию о синтаксисе MSI SQL можно найти здесь .


В автономном режиме : Вы также можете найти MSI SQL Syntax, описанный в справке msi.chm файл (Windows Installer SDK), который устанавливается вместе с Windows SDK или WiX toolset (download).

Просто найдите файл справки на диске - или найдите его в папке установки WiX, если у вас установлен WiX . Последнее, вероятно, намного быстрее и проще, чем поиск в папках SDK.

0 голосов
/ 03 июля 2018

Установщик Windows SQL - это не то же самое, что полный SQL - это подмножество, а некоторые вещи не работают. Например, использование Select Count (*) не работает в моих тестах, поэтому может потребоваться выполнить их итерацию. Также «лайк» может не поддерживаться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...