VB6 ADO Recordset如何用Unicode文本通过Filter方法筛选?
VB6 ADO Recordset 筛选Unicode文本的正确方案
在VB6中处理ADO Recordset的Unicode文本筛选时,不需要使用SQL里的N'...'语法,原因如下:
- VB6的原生
String类型本身就是UTF-16 Unicode编码,直接传入的Unicode文本会被ADO正确识别 N'...'是T-SQL专属的Unicode字符串标识语法,并不适用于ADO Recordset的Filter表达式
正确代码示例
直接将Unicode文本用单引号包裹即可:
Rs.Filter = "Name = '英語'" ' 可正常筛选Unicode内容
更稳妥的写法(处理含单引号的文本)
如果筛选的Unicode文本中包含单引号,需要用两个单引号转义,建议通过变量拼接来避免编码问题:
Dim targetName As String targetName = "英語'測試" ' 包含单引号的Unicode文本 Rs.Filter = "Name = '" & Replace(targetName, "'", "''") & "'"
内容的提问来源于stack exchange,提问作者Al007
相关产品推荐
相关产品推荐

