我正在尝试更新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。
我在这里缺少什么?
答案 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)。