DM.ADOSQL.Close;
DM.ADOSQL.SQL.Clear;
DM.ADOSQL.SQL.Add('select 备品单价 from 备品表 where 备品名=:p');
DM.ADOSQL.Parameters.ParamByName('p').Value:=edit1.text;
DM.ADOSQL.Open;
为什么执行会返回错误,说 找不到参数p(DM是一个DataModule,ADOSQL是一个AdoQuery)急死我了,实在是找不到错在哪里,麻烦大家了

解决方案 »

  1.   

    ado有时是会出现这个问题的,我有时候用dm.adosql.Parameters[1].Value就可以通过。
      

  2.   

    ado有时确实是会出现这个问题的
    DM.ADOSQL.Close;
    DM.ADOSQL.SQL.Clear;
    DM.ADOSQL.SQL.Add('select 备品单价 from 备品表 where 备品名='+#39+edit1.text+#39);
    DM.ADOSQL.Open;
      

  3.   

    是否应这样啊:
    DM.ADOSQL.Parameters.ParamByName('备品单价').Value:=edit1.text
      

  4.   

    直接用吧:DM.ADOSQL.SQL.Add('select 备品单价 from 备品表 where 备品名='''+edit1.Text+'''');
      

  5.   

    var
      s:string
    begin
    DM.ADOSQL.Close;
    DM.ADOSQL.SQL.Clear;
    s:='select 备品单价 from 备品表 where 备品名=''%s'''
    s:=format(s,[Trim(edit1.text)]);
    DM.ADOSQL.SQL.Add(s);
    DM.ADOSQL.Open;
      

  6.   

    不会呀,你写的没有问题的,我常这么用,没有出现过找不到的问题呀,你看看你的sql语句中的符号是不是用了汉字的符号,要是的话就肯定找不到了
      

  7.   

    谢谢各位,我改动了一下,用format SQL的语句,语句没有问题了,可是一执行到open,就出错,
    提示"Miss connection or connection string",这个问题可能是由于什么引起的呢?
      

  8.   

    老大,你不会还没把ADOQUERY和ADOCONNECTION相连吧?否则,你也应该设置了ConnectionString呀.