你应该用Query1.ExecSQL来执行这句语句,而不是用Query1.Open!
只有Select语句才能用Open来执行,其它的都要用ExecSQL。

解决方案 »

  1.   

    With Query1 Do
    Begin
         SQL.Clear;
         SQL.Text := 'Delete From UserInfo Where 用户名 = :Name';
         ParamByName('Name').AsString := 'usr';
         ExecSQL;
    End;
      

  2.   

     我的本意是要用变量而不是用常量'usr'删除记录。
      

  3.   

    With Query1 Do
    Begin
        SQL.Clear;
        SQL.Text := 'Delete From UserInfo Where 用户名 =’+edit1.text;
        ExecSQL;
    End; 
      

  4.   

    with query1 do
    begin
      sql.clear;
      sql.text := 'delete from userinfo where 用户名=''' + edit1.text + '''';
      execsql;
    end; 
      

  5.   

    With Query1 Do
    Begin
        SQL.Clear;
        SQL.Text := 'Delete From UserInfo Where 用户名 = :Name';
        ParamByName('Name').AsString := edit1.text;
        ExecSQL;
    End; 或者:
    with query1 do
    begin
      sql.clear;
      sql.text := 'delete from userinfo where 用户名=''' + edit1.text + '''';
      execsql;
    end;