ADOQuery1.Active := False;
  ADOQuery1.SQL.Clear;  with  ADOQuery1.Parameters.AddParameter do
  begin
    Name := 'FFphm';
    DataType := ftString;
    Value := '0000888';
  end;  ADOQuery1.SQL.Add('SELECT FPHM, ID');
  ADOQuery1.SQL.Add('FROM MS_MZXX ');
  ADOQuery1.SQL.Add('WHERE FPHM = :FFphm');  ADOQuery1.Active := True;以上是代码,但是不能得到正确的结果。是为什么呀!谢谢各位了!

解决方案 »

  1.   

    改成下面的形式:
    ADOQuery1.Active := False;
      ADOQuery1.SQL.Clear;  ADOQuery1.SQL.Add('SELECT FPHM, ID');
      ADOQuery1.SQL.Add('FROM MS_MZXX ');
      ADOQuery1.SQL.Add('WHERE FPHM = :FFphm');  with  ADOQuery1.Parameters.AddParameter do
      begin
        Name := 'FFphm';
        DataType := ftString;
        Value := '0000888';
      end;
      ADOQuery1.Active := True;
      

  2.   

    在下不才,想问一句
    ADOQuery1.SQL.Add('SELECT FPHM, ID');
      ADOQuery1.SQL.Add('FROM MS_MZXX ');
      ADOQuery1.SQL.Add('WHERE FPHM = :FFphm');

    ADOQuery1.SQL.Add('WHERE FPHM = :FFphm');
    不要给成这样吗ADOQuery1.SQL.Add('WHERE FPHM = FFphm');
      

  3.   

    ADOQuery1.close;
      ADOQuery1.SQL.Clear;  ADOQuery1.SQL.Add('SELECT FPHM, ID');
      ADOQuery1.SQL.Add('FROM MS_MZXX ');
      ADOQuery1.SQL.Add('WHERE FPHM = :FFphm');
      ADOQuery1.parambyname('FFphm').asstring:='AAA';
      ADOQuery1.open();
      

  4.   

    ID后面或者FROM前面加一个空格
    你的写法sql语句是这样:SELECT FPHM, IDFROM MS_MZXX WHERE FPHM= :FFphm,这样当然执行不出结果
      

  5.   

    FFphm 是动态增加的,一定要在SQL。ADD的前面
      

  6.   

    hellolongbin(一个人) :你看仔细了SQL属性是tSTRINGS类型的
      

  7.   

    TO: johnmack(爱若琴弦)    你用princesd(中原) ( ) 的方法也不行吗?
      

  8.   

    ADOQuery1.Active := False;
      ADOQuery1.SQL.Clear;  ADOQuery1.SQL.Add('SELECT FPHM, ID');
      ADOQuery1.SQL.Add('FROM MS_MZXX ');
      ADOQuery1.SQL.Add('WHERE FPHM = :FFphm');  ADOQuery1.Parameters.Refresh;
      

  9.   

    trainbox(rain) :还是不行呀!
      

  10.   

    你在最后一行设个断点,执行到这的时候,把鼠标点在QUERY上,按ctrl+F7,在上面的ADOQUERY后面加上 .sql.text  ,回车,看下面的sql语句(不过你的查询语句最好放在一行写),把你的参数改成上面的参数值,拉出来单独执行,看有没有数据,如果有数据,说明你的SQL有问题。没有再看其他的。
      

  11.   

    反了,有数据看说明有其他问题,没有说明SQL有问题
      

  12.   

    没有必要动态添加参数呀.
      ADOQuery1.close;
      ADOQuery1.SQL.Clear;
      ADOQuery1.SQL.Add('SELECT FPHM, ID');
      ADOQuery1.SQL.Add('FROM MS_MZXX ');
      ADOQuery1.SQL.Add('WHERE FPHM = :FFphm');
      ADOQuery1.parambyname('FFphm').asstring:='AAA';
      ADOQuery1.open();
    这样就可以了.
      

  13.   

    感谢各位!
    我解决了!ADOQuery1.SQL.Add('SELECT FPHM, ID');
      ADOQuery1.SQL.Add('FROM MS_MZXX ');
      ADOQuery1.SQL.Add('WHERE FPHM = :FFphm');
    ADOQuery1.parambyname('FFphm').value :='AAA';