-1

hi iveは、次のコードでSQLを取得しました。

SELECT SUM(Travel_Cost)
FROM Travel
WHERE Job_ID =:mcode

ユーザーがSQLに渡される編集コンポーネントから値を入力できるようにするために、次のコードも取得しました。

procedure TfrmExpenses.Button3Click(Sender: TObject);      
begin          
  ADOQuery1.active:=false;      
  ADOQuery1.Parameters('mcode').AsString:=Edit1.Text;      
  ADOQuery1.active:=true;      
end;

エラーメッセージが表示され続ける

「演算子またはセミコロンがありません」

コンパイルしようとすると、何か提案はありますか?

4

1 に答える 1

1

クラスにはデフォルト プロパティがありますが、ではなくTParametersを受け入れます。Integerstring

パラメータのインデックスがわかっている場合は、次を使用できます。

var I: Integer;
....
ADOQuery1.Parameters[I].AsString := Edit1.Text;

それ以外の場合は、次を使用する必要があります。

ADOQuery1.Parameters.ParamByName('mcode').AsString := Edit1.Text;

注:各呼び出しは、一致するものが見つかるまで、基になるコレクションに対して線形検索を実行するため、可能であれば、*ByName関数 ( ParamByName、など) をタイト ループで使用することは避けてください。FieldByNameこの特定のケースではあまり関係ありませんが、考慮する価値があります。

于 2012-03-26T15:40:19.230 に答える