Queryでパラメータを指定する

TQueryで外部からパラメータを渡すことができる SQLを書くには、SQL内でその項目の先頭に :コロンを付けます。
以下の SQLでは :NAMEがパラメータです。

■ パラメータを使用した SQLの例  
  SELECT
    NAME,WEIGHT,AREA,BMP
  FROM
    "animals.dbf" Animals
  WHERE
    NAME = :NAME

フォーム上でパラメータを使用する SQLを定義した場合はこの後、さらに TQueryの Paramsプロパティを開き、各パラメータの DataTypeと ParamTypeを指定します(これは必須ではありません)。DataTypeはパラメータの型です。ParamTypeはその引数が INなのか INOUTなのかなどを指定します。普通は ptInputです。

■ パラメータつき SQLを使用した例
  procedure TForm1.Button1Click(Sender: TObject);
  begin
    with  Query1  do  begin
      Close;
      if  Prepared  then  UnPrepare;
      //パラメータに Boaを設定
      ParamByName('NAME').AsString    :=    'Boa';       
      Prepare;
      //NAMEが Boaのレコードを抽出します
      Open;
      {
      SELECT
        NAME,WEIGHT,AREA,BMP
      FROM
        "animals.dbf" Animals
      WHERE
        NAME = 'Boa'
      }
    end;
  end;

パラメータに指定できる項目は条件文の右辺のものだけです。フィールド名や演算式をパラメータにすることは出来ません。

■ これはダメ
  SELECT * FROM  
    TABLENAME
  WHERE
    :NAME1  =  :NAME2