qzb:群组表
qzmc:群组名称
yhb:用户表
yhm:用户名
qzb中有qzmc,yhb中也有qzmc。
以下代码用Access数据库时一切正常,但换成SQL Server2000后,如果用户名是英文一切正常,但用户名是汉字时查不出结果。
select * from qzb
where qzmc=(select qzmc from yhb where yhm=:yhm)
起先我想是不是数据类型的问题,因为qzmc,yhm用的是varchar。但改为nvarchar后结果还是一样。
害的我只有分开两段写才解决问题:
select qzmc from yhb
where yhm=:yhm
..........
select * from qzb
where qzmc=:qzmc
..........
为什么会这样,请高手指教。谢谢!
qzmc:群组名称
yhb:用户表
yhm:用户名
qzb中有qzmc,yhb中也有qzmc。
以下代码用Access数据库时一切正常,但换成SQL Server2000后,如果用户名是英文一切正常,但用户名是汉字时查不出结果。
select * from qzb
where qzmc=(select qzmc from yhb where yhm=:yhm)
起先我想是不是数据类型的问题,因为qzmc,yhm用的是varchar。但改为nvarchar后结果还是一样。
害的我只有分开两段写才解决问题:
select qzmc from yhb
where yhm=:yhm
..........
select * from qzb
where qzmc=:qzmc
..........
为什么会这样,请高手指教。谢谢!
解决方案 »
- 如何更改临时文件路径?
- fastreport 的几个问题
- 我想实现读出文件的最后一行,或者更简单的方法就是从最后一行读,直接取到内容就行,着急啊
- 如何释放动态创建的数组
- 自定义的TShockwaveflash.ocx
- 如何使 showmessage提示时的"yes"按钮和"no"按钮变成中文“确定“和“取消”
- 哪里可以找到Windows Media Player 9控件的有关资料?
- 怎么调用其他应用程序,如扫雷!
- 《没有人会么!!》如何使报表预览时显示在最顶端
- 请问如何知道哪些对象联接到当前的TPopupMenu,请赐教?!!!!
- 当一个string型全局变量改变时将改变后的值加入到控件memo1中应该怎么写?
- 急求!错误“SQL语句之后缺少分号(;)。”
where qzmc=(select top 1 qzmc from yhb where yhm=:yhm)
或
select * from qzb
where qzmc in (select qzmc from yhb where yhm=:yhm)
那到底是什么地方出问题了呢?操作系统的字符集应该是unicode的吧。
不要在字段类型上纠结。我使用nvarchar或varchar或二者兼顾都没有问题。
看看你的服务器默认语言使用的是不是中文简体。
另外可以更改一下数据库的字符集:
alter database test01 collate Chinese_PRC_CI_AI在显示的时候可以更改一下显示的顺序试试。