这段代码和下面的代码有什么区别:
    第一段:
     ADO_dev_search.SQL.Clear;
     ADO_dev_search.SQL.Add('select * from device where device_id=:condition');
     ADO_dev_search.Parameters.ParamValues['condition']:='GS-WJ-001';
     ADO_dev_search.Open;
   第二段:
     ADO_dev_search.SQL.Clear;
     ADO_dev_search.SQL.Add('select * from device where :condition');
     ADO_dev_search.Parameters.ParamValues['condition']:='device_id=GS-WJ-001';
     ADO_dev_search.Open;
  不知道这两段代码有什么区别?为什么执行的结果不一样?请帮忙指点,谢谢!

解决方案 »

  1.   

    下面代码中的'device_id=GS-WJ-001'被当成一个字符串,在SQL语句中字符该用引号,如果是一个数字的话可以这样写。
      

  2.   

    第一段,其实是:select * from device where device_id='GS-WJ-001'
    第二段,其实是:select * from device where 'device_id=GS-WJ-001'
      

  3.   

    或者改为
    ADO_dev_search.SQL.Add('select * from device where device_id='+'GS-WJ-001');