我最近毕业设计,在用户管理这个模块遇到了问题,我SQL不熟,不知道是不是DELETE语句错误,请大家指点一下。
procedure TForm1.FormCreate(Sender: TObject);
 var
   i:integer;
begin
   table1.active:=true;
   table1.first;
   for i:=1 to table1.RecordCount do
    begin
    listbox1.Items.Add(table1.FieldValues['yhm']);
    table1.Next;
   end;
end;procedure TForm1.Button1Click(Sender: TObject);
var
 selstring:string;
begin
selstring:=listbox1.Items.Strings[listbox1.itemindex];
 if selstring='管理员' then
    showmessage('不能删除管理员')
    else
      if messagedlg('确认删除',mtconfirmation,[mbyes,mbno],0)=mryes then
      begin
       query1.Close;
       query1.SQL.Clear;
       query1.SQL.Add('delete from mm where yhm=selstring');
       query1.ExecSQL;
      end;

解决方案 »

  1.   

    'delete from mm where yhm=selstring'修改如下delete from mm where yhm='''+selstring+'''';
      

  2.   

    'delete from mm where yhm='+#39+selstring+#39'
    没有问题的
      

  3.   

    wudi说的不行呀,编译都不能通过!
      

  4.   

    'delete from mm where yhm='+#39+selstring+#39;
    我这里没有问题
      

  5.   

    with query1 do
       begin
          Close;
          sql.Clear;
          sql.Add('delete from mm where yhm='+#39+str+#39);
          ExecSQL;//注意这里
       end;
      

  6.   

    可以了,刚刚搞错了,谢谢wudi同^-^
      

  7.   

    query1.SQL.Add('delete from mm where yhm='+''''+'selstring'+'''');