ADOQuery控件的fields有几个事件,OnChange,OnGetText,OnSetText,OnValidate这四个事件,我都不太会使用,他们到底有什么作用,能不能举些例子,特别是OnValidate,虽然是看了帮助,但还是不太明白。希望高手指教一下,万分感谢!

解决方案 »

  1.   

    OnChange: 当自段的内容改变时触发,例如你想在某个字段被修改后,做一些其他额外的
    操作时,可以在这里写.
    OnGetText: 取字段数据时出发,例如你保存在数据库里面的字段是INTEGER类型,
    只有0和1,但是显示的时候却要显示为[未复核]和[复核],则可以这样写
    if Sender.AsInteger = 0 then
      Text := '未复核'
    else if Sender.AsInteger = 1 then
    Text := '未复核';OnSetText: OnGetText的放过程,可以让你输入的时候再做一些处理再保存到数据集
    最终提交到数据库OnValidate:检查字段数据的有效性,例如我要要求某个字段的最大值是100
      if Sender.AsInteger > 100 then
      begin
        ShowMessage('error');
        Abort;
      end;
    这时候与该字段相关联的数据库感应控件或者在代码中给该字段赋值时
    就会去判断是否大于100,如果大于100就报错!
      

  2.   

    当一个值改变的时候,他们的触发顺序是:
    OnSetText
    OnValidate
    OnChange
      

  3.   

    OnChange:字段的内容发生改变,也就是修改过字段内容就会触发
    OnGetText:字段数据已经取出,即将显示到感知控件上时触发
    OnSetText:字段数据已经修改,即将存入数据库时触发
    OnValidate:用来判断字段时候修改过