TClientDataSet的CommandText只能执行有返回数据集的语句.所在Update语句不能执行, 你只能用Select 取回数据集后进行修改再更新

解决方案 »

  1.   

    with Datamodule1.Clientcompanyuser do begin
      Close();
      CommandText := 'SELECT userid, password FROM user12 WHERE userid=''' + usernameok + '''';
      Open();
      if not IsEmpty() then begin
         Edit();
         Filtered := false;
         Filter := 'userid=''' + usernameok + '''';
         Filtered := true;
         FieldByName('password').AsString := edit1.text;
         Post();
         if ChangeCount > 0 then ApplyUpdates(-1);
         Filtered := false;
      end;
    end;
      

  2.   

    Crob(我干嘛这么帅)已经把问题说清楚了
      

  3.   

    如果Datamodule1.Clientcompanyuser是一个TClientDataSet的话它应该没有execsql方法, 或者是我不知道:)
      

  4.   

    Datamodule1.Clientcompanyuser.active:=True;这一句用了,又何必在来execsql。
    况且问题也不是在这里
      

  5.   

    Datamodule1.Clientcompanyuser.active:=False;
    Datamodule1.Clientcompanyuser.commandtype:=cmdText;
    Datamodule1.Clientcompanyuser.commandtext:=ab;
    Datamodule1.Clientcompanyuser.active:=True;
    Datamodule1.Clientcompanyuser.Execute;
      

  6.   

    Crob(我干嘛这么帅)的代码:错误:clientcompanyuser:dataset not in edit or insert mode.怎么解决?