UIText表上的UPDATE失败

时间:2016-01-21 17:36:03

标签: wix windows-installer

我正在尝试更新Windows Installer数据库中的UIText表(.msi) 我的程序已经更新了.msi中的许多表和字段

我正在打开数据库:

MsiOpenDatabase(this->MsiFile,MSIDBOPEN_DIRECT,&this->MsiHandle);

返回

  

ERROR_SUCCESS

我在各种表中更新了~200条记录(Control.Error,Feature,Shortcut,...),所有更新都有效。 然后我到达:

MsiDatabaseOpenView(this->MsiHandle,L"UPDATE UIText SET UIText.Text='Entire 
feature will be unavailable' WHERE (UIText.Key='MenuAbsent')",&ViewHandle)

返回

  

ERROR_BAD_QUERY_SYNTAX。

我试过了:

L"UPDATE 'UIText' SET 'UIText'.'Text'='Entire feature will be unavailable' 
WHERE ('UIText'.'Key'='MenuAbsent')" 

并获得相同的结果

  

ERROR_BAD_QUERY_SYNTAX。

我在这里缺少什么?

1 个答案:

答案 0 :(得分:0)

该死!抱歉浪费时间。     

L"UPDATE UIText SET UIText.Text='Entire...' WHERE (UIText.'Key'='MenuAbsent')
的工作原理。

我对'后退'的使用感到困惑 密钥是SQL保留字 UIText.Key无效。
UIText.'Key'也无效。这是在Key周围使用撇号(39 Decimal) UIText。Key有效。这是在Key周围使用'back ticks'(96 Decimal)。