更新 UIText table 失败
UPDATE on UIText table fails
我正在尝试更新 Windows 安装程序数据库 (.msi) 中的 UIText Table
我的程序已经更新了 .msi
中的许多表和字段
我这样打开数据库:
MsiOpenDatabase(this->MsiFile,MSIDBOPEN_DIRECT,&this->MsiHandle);
这个returns
ERROR_SUCCESS
我已经更新了各种表中的约 200 条记录(Control.Error、功能、快捷方式...),所有更新都有效。
然后我得到:
MsiDatabaseOpenView(this->MsiHandle,L"UPDATE UIText SET UIText.Text='Entire
feature will be unavailable' WHERE (UIText.Key='MenuAbsent')",&ViewHandle)
这个returns
ERROR_BAD_QUERY_SYNTAX.
我试过:
L"UPDATE 'UIText' SET 'UIText'.'Text'='Entire feature will be unavailable'
WHERE ('UIText'.'Key'='MenuAbsent')"
得到相同的结果
ERROR_BAD_QUERY_SYNTAX.
我在这里错过了什么?
该死!抱歉浪费时间。
L"UPDATE UIText SET UIText.Text='Entire...' WHERE (UIText.'Key'='MenuAbsent')
有效。
我对 'back ticks' 的使用感到困惑
密钥是 SQL 保留字。
UIText.Key 无效。
UIText.'Key' 也无效。这是在 Key 周围使用撇号(39 进制)。
UIText.Key
有效。这是在 Key 周围使用 'back ticks'(96 进制)。
我正在尝试更新 Windows 安装程序数据库 (.msi) 中的 UIText Table 我的程序已经更新了 .msi
中的许多表和字段我这样打开数据库:
MsiOpenDatabase(this->MsiFile,MSIDBOPEN_DIRECT,&this->MsiHandle);
这个returns
ERROR_SUCCESS
我已经更新了各种表中的约 200 条记录(Control.Error、功能、快捷方式...),所有更新都有效。 然后我得到:
MsiDatabaseOpenView(this->MsiHandle,L"UPDATE UIText SET UIText.Text='Entire
feature will be unavailable' WHERE (UIText.Key='MenuAbsent')",&ViewHandle)
这个returns
ERROR_BAD_QUERY_SYNTAX.
我试过:
L"UPDATE 'UIText' SET 'UIText'.'Text'='Entire feature will be unavailable'
WHERE ('UIText'.'Key'='MenuAbsent')"
得到相同的结果
ERROR_BAD_QUERY_SYNTAX.
我在这里错过了什么?
该死!抱歉浪费时间。
L"UPDATE UIText SET UIText.Text='Entire...' WHERE (UIText.'Key'='MenuAbsent')
有效。
我对 'back ticks' 的使用感到困惑
密钥是 SQL 保留字。
UIText.Key 无效。
UIText.'Key' 也无效。这是在 Key 周围使用撇号(39 进制)。
UIText.Key
有效。这是在 Key 周围使用 'back ticks'(96 进制)。