我正在更新我们的一个旧应用程序以支持unicode。它充斥着针对 ADODB库的文字SQL查询(SELECT * FROM ...
)。大部分工作正常,直到我找到SEEK代码。我们有一些方法可以将用户数据转换为where子句。所以它解析字典并生成一个字符串。如果用户正在寻找带有unicode数据的东西,我需要用N附加语句。但是,当我将其添加到文本并通过recordset.open传递命令时, ADODB 会抛出异常:
无法解析SQL
现有SQL输出:
SELECT * FROM ACCOUNT WHERE NAME ='ӐӕӔҔҖӸӽӳ'
这会通过记录集,但无法检索任何数据。
我需要什么,但却抛出异常:
SELECT * FROM ACCOUNT WHERE NAME = N'ӐӕӔҔҖӸӽӳ'
我需要对记录集做一些特殊的魔术以允许N通过吗?或者,我需要采取另一种方法来实现这一目标吗? (是的,我知道我们应该参数化查询,这是长期修复,但这是意大利面条代码)。