判断用户输入的用户名和密码(edit5,edit6)是否存在,如果存在删除数据库中该用户名和密码,但删除时出错,提示:'table1:Dataset not in edit or insert mode'.
但在数据里一看,该用户用户名和密码已删除,望高手指点,再线等,速结贴。
代码如下:
DataModule2.Table1.Active := true;
 with DataModule2.Table1  do
  begin
     SetKey;
     FieldByName('userID').AsString:=Edit5.Text;
     if GotoKey then
        begin
           if Locate('password',VarArrayOf([Edit6.Text]),[]) then
            begin
              showmessage('ok');
              unit2.DataModule2.Table1.Active := true;
              unit2.DataModule2.Table1.Edit ;
              unit2.DataModule2.Table1.Delete ;
              unit2.DataModule2.Table1.Post; // 写回数据库
              unit2.DataModule2.Table1.Refresh;
            end
            else
              showmessage('password wrong');
        end
        else
          showmessage('userID is wrong');     end;

解决方案 »

  1.   

    呵呵,刚才看过你发过贴了!
    //unit2.DataModule2.Table1.Post; // 写回数据库  //不要这句Delete是不用post的
      

  2.   

    DataModule2.Table1.Active := true;
     with DataModule2.Table1  do
      begin
         SetKey;
         FieldByName('userID').AsString:=Edit5.Text;
         if GotoKey then
            begin
               if Locate('password',VarArrayOf([Edit6.Text]),[]) then
                begin
                  showmessage('ok');
                  unit2.DataModule2.Table1.Active := true;
                  //unit2.DataModule2.Table1.Edit ;//不要
                  unit2.DataModule2.Table1.Delete ;
                 // unit2.DataModule2.Table1.Post; // 写回数据库//不要
                  unit2.DataModule2.Table1.Refresh;
                end
                else
                  showmessage('password wrong');
            end
            else
              showmessage('userID is wrong');     end;
      

  3.   

    不好意思,总麻烦大家,我delphi不熟,有没有好参考书,只有麻烦大家了。