TClientDataSet的Locate方法不能处理中文字段???
我用TclientDataSet的Locate方法遇到了奇怪的情况:
MS SQL数据库中有表“疾病表”(疾病号 nvarchar(8),疾病名称 nvarchar(50))
有一记录为(0100009,异常症)
用ClientDataSet1->Locate(“疾病号”,”0100009”,opts),在DBGrid上可以成功定位到这一记录;
用ClientDataSet1->Locate(“疾病名称”,”异常症”,opts),在DBGrid上无论如何都只能定位到首记录;
将表中字段(疾病名称)统统改为英文字符,如(0100009,ycz)后,用ClientDataSet1->Locate(“疾病名称”,”ycz”,opts),在DBGrid上可以成功定位到这一记录;
可是如果用两层结构,ADOQuery1->Locate(“疾病名称”,”异常症”,opts),是可以得到正确结果的。各位大侠,三层结构就是这样折磨人的吗?