发布网友 发布时间:2022-04-20 06:36
共4个回答
热心网友 时间:2023-08-10 13:10
一类是After系列,列表如下:
.BeforeOpen,AfterOpen发生在数据集打开前后;
.BeforeClose,AfterClose发生在数据集关闭前后;
.BeforeInsert,AfterInsert发生在插入了一条新的记录前后;
.BeforeEdit,AfterEdit 发生在进入dsEdit状态前后;
.BeforePost,AfterPost 发生在写数据集的前后;
.BeforeCancel,AfterCancel发生在取消修改的前后;
.BeforeDelete,AfterDelete发生在删除记录的前后。
此外,当数据集中增加了一条新的记录时就会触发OnNewRecord事件,当“计算字段”的值需要重算时将触发OnCalcFields事件。
Before系列的事件常常用来中止操作。例如,当调用Delete函数试图删除当前记录时,在当前记录将要删除前会触发BeforeDelete事件,可以在处理BeforeDelete事件的句柄中调用Abort或触发一个异常放弃删除当前记录,程序示例如下:
Pocere TForm1.TableBeforeDelete (Dataset: TDataset)
Begin
If MessageDlg('Delete This Record?', mtConfirmation, mbYesNoCancel, 0) <> mrYes Then Abort;
End;
After系列的事件往往用来在状态栏上通知用户,程序示例如下:
Procere TForm1.Table1AfterDelete(DataSet: TDataSet);
Begin
StatusBar1.SimpleText := Format('有%d 条记录',[DataSet.RecordCount]);
End;
OnCalcFields事件主要用于给出“计算字段”的值。AutoCalcFields属性的值决定了什么时候会发生OnCalcFields事件。
如果AutoCalcFields属性设为True,下列情况下会发生OnCalcFields事件:
.数据集被打开时;
.在数据控件中,输入焦点从一条记录移到另一条记录;
.在数据控件中,输入焦点从一个字段移到另一个字段;
.当前记录被修改或从数据库中检索了一条记录。
不过,即使AutoCalcFields属性设为False,当数据集中的任意一个非计算字段的值发生变化时都会触发OnCalcFields事件。
由于OnCalcFields事件有可能是频繁发生的,因此,处理OnCalcFields 事件的代码要尽可能地简短。在AutoCalcFields属性设为True的情况下,在处理OnCalcFields事件的句柄中不能修改数据集的数据,因为一旦当前记录被修改,又要触发OnCalcFields事件,从而导致无限循环。例如,假设您在处理OnCalcFields事件的句柄中调用了Post,就会触发OnCalcFields事件,导致再次调用Post,再次触发OnCalcFields事件……
6.9 TBDEDataSet
TBDEDataSet是从TDataSet继承下来的,它提供了通过BDE(BorlandDatabase Engine)访问数据的能力。这一节主要介绍TBDEDataSet,读者应当对前面介绍的TDataSet已经有了比较深刻的认识。
与TDataSet一样,TBDEDataSet也是虚拟的和抽象的,除非您想建立自定义的数据集,否则,一般不需要直接用到TBDEDataSet。
TBDEDataSet重载了TDataSet中涉及记录导航、索引和书签的方法,增加了一些处理BLOB字段、缓存更新的属性、方法和事件。
热心网友 时间:2023-08-10 13:12
一类是After系列,列表如下:
.BeforeOpen,AfterOpen发生在数据集打开前后;
.BeforeClose,AfterClose发生在数据集关闭前后;
.BeforeInsert,AfterInsert发生在插入了一条新的记录前后;
.BeforeEdit,AfterEdit 发生在进入dsEdit状态前后;
.BeforePost,AfterPost 发生在写数据集的前后;
.BeforeCancel,AfterCancel发生在取消修改的前后;
.BeforeDelete,AfterDelete发生在删除记录的前后。
此外,当数据集中增加了一条新的记录时就会触发OnNewRecord事件,当“计算字段”的值需要重算时将触发OnCalcFields事件。
Before系列的事件常常用来中止操作。例如,当调用Delete函数试图删除当前记录时,在当前记录将要删除前会触发BeforeDelete事件,可以在处理BeforeDelete事件的句柄中调用Abort或触发一个异常放弃删除当前记录,程序示例如下:
Pocere TForm1.TableBeforeDelete (Dataset: TDataset)
Begin
If MessageDlg('Delete This Record?', mtConfirmation, mbYesNoCancel, 0) <> mrYes Then Abort;
End;
After系列的事件往往用来在状态栏上通知用户,程序示例如下:
Procere TForm1.Table1AfterDelete(DataSet: TDataSet);
Begin
StatusBar1.SimpleText := Format('有%d 条记录',[DataSet.RecordCount]);
End;
OnCalcFields事件主要用于给出“计算字段”的值。AutoCalcFields属性的值决定了什么时候会发生OnCalcFields事件。
如果AutoCalcFields属性设为True,下列情况下会发生OnCalcFields事件:
.数据集被打开时;
.在数据控件中,输入焦点从一条记录移到另一条记录;
.在数据控件中,输入焦点从一个字段移到另一个字段;
.当前记录被修改或从数据库中检索了一条记录。
不过,即使AutoCalcFields属性设为False,当数据集中的任意一个非计算字段的值发生变化时都会触发OnCalcFields事件。
由于OnCalcFields事件有可能是频繁发生的,因此,处理OnCalcFields 事件的代码要尽可能地简短。在AutoCalcFields属性设为True的情况下,在处理OnCalcFields事件的句柄中不能修改数据集的数据,因为一旦当前记录被修改,又要触发OnCalcFields事件,从而导致无限循环。例如,假设您在处理OnCalcFields事件的句柄中调用了Post,就会触发OnCalcFields事件,导致再次调用Post,再次触发OnCalcFields事件……
6.9 TBDEDataSet
TBDEDataSet是从TDataSet继承下来的,它提供了通过BDE(BorlandDatabase Engine)访问数据的能力。这一节主要介绍TBDEDataSet,读者应当对前面介绍的TDataSet已经有了比较深刻的认识。
与TDataSet一样,TBDEDataSet也是虚拟的和抽象的,除非您想建立自定义的数据集,否则,一般不需要直接用到TBDEDataSet。
TBDEDataSet重载了TDataSet中涉及记录导航、索引和书签的方法,增加了一些处理BLOB字段、缓存更新的属性、方法和事件。
热心网友 时间:2023-08-10 13:12
安全推出硬件的时候
热心网友 时间:2023-08-10 13:13
程序结束的时候
热心网友 时间:2023-08-10 13:10
一类是After系列,列表如下:
.BeforeOpen,AfterOpen发生在数据集打开前后;
.BeforeClose,AfterClose发生在数据集关闭前后;
.BeforeInsert,AfterInsert发生在插入了一条新的记录前后;
.BeforeEdit,AfterEdit 发生在进入dsEdit状态前后;
.BeforePost,AfterPost 发生在写数据集的前后;
.BeforeCancel,AfterCancel发生在取消修改的前后;
.BeforeDelete,AfterDelete发生在删除记录的前后。
此外,当数据集中增加了一条新的记录时就会触发OnNewRecord事件,当“计算字段”的值需要重算时将触发OnCalcFields事件。
Before系列的事件常常用来中止操作。例如,当调用Delete函数试图删除当前记录时,在当前记录将要删除前会触发BeforeDelete事件,可以在处理BeforeDelete事件的句柄中调用Abort或触发一个异常放弃删除当前记录,程序示例如下:
Pocere TForm1.TableBeforeDelete (Dataset: TDataset)
Begin
If MessageDlg('Delete This Record?', mtConfirmation, mbYesNoCancel, 0) <> mrYes Then Abort;
End;
After系列的事件往往用来在状态栏上通知用户,程序示例如下:
Procere TForm1.Table1AfterDelete(DataSet: TDataSet);
Begin
StatusBar1.SimpleText := Format('有%d 条记录',[DataSet.RecordCount]);
End;
OnCalcFields事件主要用于给出“计算字段”的值。AutoCalcFields属性的值决定了什么时候会发生OnCalcFields事件。
如果AutoCalcFields属性设为True,下列情况下会发生OnCalcFields事件:
.数据集被打开时;
.在数据控件中,输入焦点从一条记录移到另一条记录;
.在数据控件中,输入焦点从一个字段移到另一个字段;
.当前记录被修改或从数据库中检索了一条记录。
不过,即使AutoCalcFields属性设为False,当数据集中的任意一个非计算字段的值发生变化时都会触发OnCalcFields事件。
由于OnCalcFields事件有可能是频繁发生的,因此,处理OnCalcFields 事件的代码要尽可能地简短。在AutoCalcFields属性设为True的情况下,在处理OnCalcFields事件的句柄中不能修改数据集的数据,因为一旦当前记录被修改,又要触发OnCalcFields事件,从而导致无限循环。例如,假设您在处理OnCalcFields事件的句柄中调用了Post,就会触发OnCalcFields事件,导致再次调用Post,再次触发OnCalcFields事件……
6.9 TBDEDataSet
TBDEDataSet是从TDataSet继承下来的,它提供了通过BDE(BorlandDatabase Engine)访问数据的能力。这一节主要介绍TBDEDataSet,读者应当对前面介绍的TDataSet已经有了比较深刻的认识。
与TDataSet一样,TBDEDataSet也是虚拟的和抽象的,除非您想建立自定义的数据集,否则,一般不需要直接用到TBDEDataSet。
TBDEDataSet重载了TDataSet中涉及记录导航、索引和书签的方法,增加了一些处理BLOB字段、缓存更新的属性、方法和事件。
热心网友 时间:2023-08-10 13:13
退出软件的时候吧
热心网友 时间:2023-08-10 13:11
安全推出硬件的时候
热心网友 时间:2023-08-10 13:11
程序结束的时候
热心网友 时间:2023-08-10 13:12
退出软件的时候吧