用DBEDIT来显示某个表的某些字段现在要实现的是:当用户修改十个中任何一个DBEDIT中的内容后按下BUTTON,跳出对话框按确定则更改内容存入数据库 按取消则恢复之前的数据。这个BUTTON要同时对10个DBEDIT起作用!!

解决方案 »

  1.   

    你的那十个TDBEdit控件是连接的一个ADOQuery吧可以这样来在按钮的点击事件里!最开始需要把连接关闭!这样才能保证数据不是随时更改的if Application.MessageBox('连接数据库失败,'+#13+
                                  '请检查服务器是否启动或设置是否正确!'+#13#13+
                                  '是否现在进行服务器设置?',
                                  '信息',MB_OKCANCEL+MB_ICONQUESTION)=IDOK then
    begin
       ADOQuery.Post;
    end;
      

  2.   

    >>这个BUTTON要同时对10个DBEDIT起作用!!
    因该考虑处理
    dbedit对应的 DataSet, 就简单了
      

  3.   

    如下:
    ~~~~~~~~~~~~~~
    DataSet property set:
    LockType --> ltBatchOptimistic确定:DataSetName.UpdateBatch;
    取消:DataSetName.CancelUpdates;
    ~~~~~~~~~~~~~~
      

  4.   

    >>当用户修改十个中任何一个DBEDIT中的内容后按下BUTTON!
    对于dbedit当焦点离开后,它就会自动向数据库post的,
    当在对话框中按确定则没什么问题,
    当按取消的话就需要事先把那些数据都保存,在取消后在给
    赋值回去!
      

  5.   

    首先把adoquery的LockType属性 --> ltBatchOptimistic
    button1触发事件里写:
    if Application.MessageBox('确定要修改吗?', '提示', MB_YESNO) = IDNO then 
    begin
      adoquery1.CancelUpdates;
    end
      else
      adoquery1.UpdateBatch;