数据录入是数据处理的基本功能,录入操作方便与否是衡量应用程序交互性指标之一 。
作者:Kapok.Chan 来源:yesky 2007年11月1日
关键字: Delphi 记录 实现
在数据库管理系统中,数据录入是数据处理的基本功能,录入操作方便与否是衡量数据库应用程序交互良莠的指标之一。录入中除了应要对录入数据进行合法检验外,还应为用户提供更多的方便操作,即对于“规范性”数据,如:性别、职称等字段的数据,应尽可能供用户“选择”录入,而非直接文字输入,另外,如:出生年月、联系电话、邮编等类似名称的字段,程序应设置数据录入格式,这可以从一定程度
上“规范”数据,并提高录入速度。除此以外,在较大数据量的录入中,用户还希望更快速地进行相似数
据的批量录入,实现高效数据处理。本文只介绍“批量数据”的录入处理。
针对大多数的要录入的记录数据都与现有(即已录入)数据具有或多或少的相同内容,因此,修改记录的少量字段数据无疑要比逐个字段内容录入快得多。由于此方法源自Foxbase系统的“Set carry on”命令,因此取名为记录“携带”。以下具体介绍这种录入数据时采用的“携带”功能的实现方法。
一、建立一动态数组,用来存放整条记录的所有字段值(不含“备注型”等类型),定义如下:
MyDynamic_Record: Variant; //定义一个动态可变数组,来存放当前记录各字段值
注意此处不限定数组单元数和单元值类型,更具有通用性。
二、在表对象的InsertBefore事件中,完成源数据的读取并存入动态数组MyDynamic_Record中。
具体是,用户定位到要作为源的记录位置(可以是末记录或中间某一记录),使用Insert插入键(或其它应用程序提供的按键或按钮)进行插入操作前,为表对象的InsertBefore事件加入读取当前记录的各字段值的代码(见以下MyRecordScatTo()自定义函数),存入MyDynamic_Record中。
三、在表对象的InsertAfter事件中将MyDynamic_Record数组值写入新增的记录的各字段值(代码见以下My_GathFrom自定义函数)。