select * from my_table where name = '汉字名称' 查不出数据?
大家好!
我用的数据库为SQL Server 2005 Express,创建了一个简单的表my_table,结构如下:
[id] [int] NOT NULL,
[name1] [varchar](16) NULL,
[name2] [nvarchar](16) NULL
加入两条数据,如下:
1 sj sj
2 汉字 汉字
使用ODBC建立数据源,使用VC++2008新建Win32控制台工程,使用开源库OTL V4连接数据源,成功
使用语句select * from my_table where name1 = 'sj',查询成功,name2也成功
但是当我把where name1 = 'sj'改成where name = '汉字'的时候,就查找不到数据了,name2同样如此
曾经做过的尝试如下:
使用setlocale( LC_ALL, "chinese" ); 不成功
指定OTL使用Unicode编码
#define OTL_UNICODE_CHAR_TYPE wchar_t
#define OTL_UNICODE
不成功
修改数据源配置中的本地区域设置,不成功
不知道这个问题有人遇到过吗,是不是我还漏了什么东西没有做?谢谢大家!!
------解决方案--------------------
试试
SQL code
where name = N'汉字'
------解决方案--------------------
SQL code
select * from my_table where name1 =N'汉字'
------解决方案--------------------
SQL code
Unicode编码问题
要么将varchar-->nvarchar()
要么在汉字的前面加N'汉字'
------解决方案--------------------
谢谢了,又学习了。。。。。。。。
------解决方案--------------------
select * from my_table where name1 =N'汉字'