缺少运算符或分号错误消息

时间:2012-03-24 22:09:46

标签: delphi delphi-7 tadoquery

你有一个带有以下代码的SQL,

  

SELECT SUM(Travel_Cost)
  从旅行中   Job_ID =:mcode

为了允许用户从传递给SQL的编辑组件输入值,我还得到以下代码,

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

我继续收到错误消息

  

“缺少运算符或分号”

当我尝试编译时,有什么建议吗?

1 个答案:

答案 0 :(得分:1)

虽然TParameters类确实有默认属性,但它接受Integer,而不是string

如果您知道可以使用的参数索引:

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

否则你需要使用:

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

注意:如果可以的话,您可以避免在紧密循环中使用任何*ByName函数(ParamByNameFieldByName等),因为每个调用执行线性搜索在底层集合上,直到找到匹配项。在这个特殊情况下并不真正相关,但值得考虑。