奇怪的问题,为什么不能SQL中的中文字符比较,望高手速进? (50分)

  • 主题发起人 主题发起人 LoveDel
  • 开始时间 开始时间
L

LoveDel

Unregistered / Unconfirmed
GUEST, unregistred user!
我在做三层模式的时候,客户端用clientdataset当我用commandtext属性时中文的比较老是
不对,而数字和英文就可以,不知是为什么。我程序如下。
with dm_manager.cds_userdo
begin
close;
commandtext:='select id,name from users where id=:id and name=:name and purview=2';
params.ParamByName('id').AsString:=edt_id.Text;
params.ParamByName('name').AsString:=edt_name.Text;
open;
end;
if dm_manager.cds_user.RecordCount=0 then
 
你用的是SQL SERVER吧,我也碰到过,解决办法是:
params.ParamByName('name').AsString:=edt_name.Text;
for i:=0 to length(widestring(Trim(edt_name.Text)))-1do
params.ParamByName('name').AsString:=params.ParamByName('name').AsString+' ';
 
问题已经解决
高手就是高手,
谢谢了啊,兄台。
但你可以给说者是什么原因吗?谢谢。
 
我不知道,ADO的Bug?SQL SERVER字符集的问题?
 
但是我用ADOquery组件的时候没有遇到这个问题啊。
 
问题是解决了,但是我还没有搞懂,我总不能每次都来一次循环吧,那样的效率并不好啊。
是否我应该升级我的ADO数据库引擎。请教,再帮我一次吧
 

Similar threads

后退
顶部