我有这么一个问题,请大家分析分析。
数据表名:testtable 其中有个字段 ttname是字符串类型
在Adoquery中执行查询:query.close;
query.sql.clear;
query.sql.add('select * from (select * from testtable where ttname=:tn) as tmptable');
query.parameters.parambyname('tn').value:='中国';
query.open;这条查询没有实际意义,只是用于测试子查询。
如果:query.parameters.parambyname('tn').value:='chian';对于西文可以正常执行。
如果:query.parameters.parambyname('tn').value:='中国';对于中文就不能得到查询结果,好像tn没有起作用,把它当空字符串处理了。请大家分析分析原因?
数据表名:testtable 其中有个字段 ttname是字符串类型
在Adoquery中执行查询:query.close;
query.sql.clear;
query.sql.add('select * from (select * from testtable where ttname=:tn) as tmptable');
query.parameters.parambyname('tn').value:='中国';
query.open;这条查询没有实际意义,只是用于测试子查询。
如果:query.parameters.parambyname('tn').value:='chian';对于西文可以正常执行。
如果:query.parameters.parambyname('tn').value:='中国';对于中文就不能得到查询结果,好像tn没有起作用,把它当空字符串处理了。请大家分析分析原因?
下面就可以正常执行:
query.close;
query.sql.clear;
query.sql.add('select * from testtable where ttname=:tn');
query.parameters.parambyname('tn').value:='中国';
query.open;
楼上的说“升级包的问题”,请指教,能不能说详细一点?
query.sql.add('select * from (select * from testtable where ttname=''中国'') as tmptable');
肯定没问题,能执行,关键这样有安全问题,会出现SQL注入的攻击.
2.使用的IDE各打了什么补丁。
2.IDE没有补丁