小弟想删除一个表中的一条数据,条件是edit5中所显示的条件,可运行时显示错误,'列前缀'edit5‘与查询中所用的表名或别名不匹配,语句如下:
ADOQuery2.Close ;
ADOQuery2.SQL.Clear ;
ADOQuery2.SQL.Add('delete TABLE3 WHERE 学生姓名=edit5.text');
ADOQuery2.Open;小弟本意想删除表中 学生姓名 为edit5.text中输入的姓名所在的行,不知怎么修改,还请高手赐教~~

解决方案 »

  1.   

    ADOQuery2.SQL.Add('delete TABLE3 WHERE 学生姓名=edit5.text');
    //改成ADOQuery2.SQL.Add('delete TABLE3 WHERE 学生姓名='+''''+edit5.text+'''');
      

  2.   

    with ADOQuery2 do
    begin
      Close ;
      SQL.Clear ;
      SQL.Add('delete TABLE3 WHERE 学生姓名= :xx');
      Parameters.Parambyname('x').value := edit5.text;
    ExecSQL;
    end;
      

  3.   

    with ADOQuery2 do
    begin
       close;
       SQL.clear;
       SQL.Add('delete table3 where 学生姓名='+''''+edit5.text+'''');
       Open;
    end;
      

  4.   

    with ADOQuery2 do
    begin
      Close ;
      SQL.Clear ;
      SQL.Add('delete TABLE3 WHERE 学生姓名= :name');
      Parameters.Parambyname('name').value := edit5.text;
      ExecSQL;
    end;

    with ADOQuery2 do
    begin
      Close ;
      SQL.Clear ;
      SQL.Add('delete TABLE3 WHERE 学生姓名='''+edit5.text+'''');
      ExecSQL;
    end;