如果我有一个如下的SQL语句

SELECT * FROM myTable WHERE CID = :vCID AND DataType = :vDataType


通常我使用TQuery来获取如下数据

aQuery.ParamByName('vCID').Value := '0025';
aQuery.ParamByName('vDataType').AsInteger := 1;


但是我如何才能忽略“ CID”键来获取类似的SQL

SELECT * FROM myTable WHERE DataType = :vDataType


我尝试了以下同步语法,但失败了

aQuery.ParamByName('vCID').Value := '%';
aQuery.ParamByName('vDataType').AsInteger := 1;


请帮帮我,谢谢。

最佳答案

最好的选择是简单地使用单独的查询:

aQueryBoth.SQL.Text := 'SELECT * FROM myTable WHERE CID = :vCID AND DataType = :vDataType';
...
aQueryBoth.ParamByName('vCID').Value := '0025';
aQueryBoth.ParamByName('vDataType').AsInteger := 1;




aQueryDataType.SQL.Text := 'SELECT * FROM myTable WHERE DataType = :vDataType';
...
aQueryDataType.ParamByName('vDataType').AsInteger := 1;

07-25 23:38