TClientdataset 模糊查询的问题
我用Adoquery连接TClientdataset ,TClientdataset进行模糊查询,比如 cds.filter:='title = ''%黑色%'''; 会出现"type mismatch in expression"的错误,发现TField是twidestringfield都会出现这种错误,不管中文还是数字,如果我自己添加域,
with TStringfield.Create(self) do
begin
fieldName:='title';
size:=200;
Dataset:=cds_item;
end;
再追加数据
cds_item.CreateDataSet;
cds_item.AppendRecord(['123456','测试一']);
这样模糊查询就不会有问题;
主要问题应该是在TWidestringfield类型上,若能把它变成TStringfield,应该就没问题,但是我的数据是从adoquery上获取的,access数据库,adoquery连接clientdataset后自动就是twidestringfield类型,无法变更;如果像上面那样自己添加域,又没办法连接到adoquery上的数据,请问有什么解决办法能让这个Twidestringfield变成tstringfield吗,折腾了一天,实在没法子,请高人帮忙,有什么解决办法吗! clientdataset
[解决办法]
这个提示我昨天刚碰到,但是我本机过滤都是好的,放到别的机器就出事,后来发现人家机器windows\system32下面有midas.dll,但是和我自己程序带的这个动态库大小不一样,我把delphi的那个midas.dll拷贝到system32下面,替换原来的就好了,不过这样不治本,最后还是给用到clientdataset的单元都加上了midaslib这个静态库,脱离动态库这个包袱,省得万一在装什么软件神马的,把我这个midas.dll给替换掉
那个,title = ''%黑色%'' 带通配符,一般都是like吧,你咋用= title like '%啥%'这样