我在界面上放了一个TDBEdit控件,用来显示TTable中的某个字段,当我修改了TDBEdit中的数值时,应该也同时修改了TTable中的字段,那么什么时候才算修改结束呢,是不是当光标移到其他位置时,TDBEdit中修改了的数据就会存入TTable中的字段中?如果是这样的话,如果界面上还有一个ok按钮,当按下ok按钮时,程序会检查输入数据的合法性,而这个ok按钮的default属性被设为true,也就是说当按下Enter键时就相当于按下了ok按钮,那么当我在TDBEdit中修改了数据后并按下Enter键,这时修改了的数据到底有没有存入TTable的字段中呢?谢谢!

解决方案 »

  1.   

    获得焦点的时候
    database1.StartTransaction;按ok按钮,如果正确
    database1.Commit;
    否则
    database1.Rollback;
      

  2.   

    如果正确
    database1.Commit;
    否则
    database1.Rollback;
      

  3.   

    在ok 的CLICK事件中一个post就可以确定修改过了!并能费事的!
      

  4.   

    可是,如果我调用post的话,修改了的数据就写到数据库中去了啊,我希望先对数据进行检查,当所有数据都合法时,在一次调用post将所有的数据写到数据库中去。另外,当我按下enter键时,输入焦点并没有从TDBEdit中移走,这是修改的数据是不是没有写到TTable中呢?
      

  5.   

    在OK事件里,先检查输入是否合法,然后POST例:
    If myTable.FieldByName('Name').asString = '' Then
    Begin
      dbEditName.SetFocus ;
      showMessage('姓名不能为空');
      Exit ;
    End ;
    myTable.Post ;
    //showMessage('保存成功...');
      

  6.   

    按ok按钮,如果正确
    table.post
    否则
    table. cancel还可以起用缓存机制
      

  7.   

    1.判断语句检查是否正确;
    2.post;