我在使用ADOQuery时,如果参数的参数值为中文,会被截断???
比如 sql为:
Query.sql.add('select * from table1 a');
Query.sql.add('inner join table2 b on a.id=b.id');
Query.sql.add('inner join table3 c on a.id=c.id and c.name=:_Na');
Query.sql.add('where a.Par=:_Pa');
Query.sql.ParamByName('_Na').Value:='2006';
Query.sql.ParamByName('_Pa').Value:='参数';
Query.open;最后在查询跟踪器跟踪出的查询语句中 '_Pa' 参数变为'参'但如果把[c.name:_Na]这个条件放到[where a.Par=:Pa]后,跟踪器出来的参数值正确~~~~何解??
比如 sql为:
Query.sql.add('select * from table1 a');
Query.sql.add('inner join table2 b on a.id=b.id');
Query.sql.add('inner join table3 c on a.id=c.id and c.name=:_Na');
Query.sql.add('where a.Par=:_Pa');
Query.sql.ParamByName('_Na').Value:='2006';
Query.sql.ParamByName('_Pa').Value:='参数';
Query.open;最后在查询跟踪器跟踪出的查询语句中 '_Pa' 参数变为'参'但如果把[c.name:_Na]这个条件放到[where a.Par=:Pa]后,跟踪器出来的参数值正确~~~~何解??
Query.sql.add('inner join table2 b on a.id=b.id');
Query.sql.add('inner join table3 c on a.id=c.id and c.name=:_Na');
Query.sql.add('where a.Par=:_Pa');
Query.sql.ParamByName('_Na').AsString:='2006'; //试试看
Query.sql.ParamByName('_Pa').AsString:='参数'; //
Query.open;
Query.sql.add('select * from table1 a');
Query.sql.add('inner join table2 b on a.id=b.id');
Query.sql.add('inner join table3 c on a.id=c.id and c.name='':_Na'''); //
Query.sql.add('where a.Par='':_Pa'''); //这两行的引号。
Query.sql.ParamByName('_Na').Value:='2006';
Query.sql.ParamByName('_Pa').Value:='参数';
Query.open;
另外仔细看看'_Pa''_Na'的类型定义是不是错了。
我用delphi5打过ado补丁也是如此的
并且还是2台机器也是同样的问题
不会有这么妖孽的问题吧!