|
网站首页
|
JAVA文章
|
AppServers
|
Web开发
|
应用开发
|
资源下载
|
论坛
想学好编程,学好外语很重要 [enadd 2006年12月25日]
设为首页
加入收藏
联系站长
您现在的位置:
编程笔记网
>>
应用开发
>>
delphi
>>
数据库应用
>> 文章正文
在Delphi中利用Tbatch组件完成数据批处理
【字体:
小
大
】
在Delphi中利用Tbatch组件完成数据批处理
作者:不祥 文章来源:- 点击数: 更新时间:2006-12-12
在Delphi中利用Tbatch组件完成数据批处理
军械工程学院五系研究生队 王俊
----在
数据库
应用系统中,常常要对数据进行成批的如追加、删除、更改等操作,这种批量操作在专门的
数据库
开发工具如VFP中用APPEND、COPY命令带上相应的命令子句就能轻易完成。但在其它开发工具中并没有类似的命令,而是提供能完成类似功能的控件或对象,如在PowerBuilder中就是利用PipeLine(数据管道)来完成两个或同构或不同构的表之间的数据批处理。本文要介绍的是Delphi中用来完成数据批处理任务的组件TBatchMove。TBatchMove组件能够:
将一个数据集中的数据追加到一个表中。.
从一个表中删除满足条件的记录。
按旧表结构生成一个新表,若欲生成的新表已存在,则覆盖。
----具体的操作要通过设置TBatchMove的Mode属性后再调用Execute方法来完成。为举例说明问题,我们在别名
数据库
DBDEMOS中先创建两个dBase格式的表Test1.dbf和Test2.dbf。二者的结构如下表:
Test1.dbf Test2.dbf
Name C 10 Name C 10
Code C 3 Code C 3
----其中表Test2.dbf在字段code上建立有唯一索引。同时假设表单中已有两个TABLE控件Tsource和Tdest和一个TbatchMove组件batchmove1。Tsource和Tdest的DatabaseName属性均设为DBDEMOS。batchmove1的source属性设为Tsource,destination属性设为Tdest。
----在使用TbatchMove组件时,必须牢记:所有的操作都是以源表为标准针对目的表进行的,下面就分别举例说明TbatchMove的各种操作模式:
batAppend追加模式将源表中的数据追加到目的表中,目的表必须事先存在。这是缺省模式。
batchmove1.source=Tsource;
batchmove1.destination=Tdest2;
batchmove1.Mode:=batCopy;
batchmove1.Execute;
batUpdate更新模式用源表中匹配目的表的记录替换目的表中的相应记录。目的表必须事先存在且有一已定义的索引用来匹配源表中的记录。
Tdest.IndexFieldNames:='code';
batchmove1.source=Tsource;
batchmove1.destination=Tdest;
batchmove1.Mode:=batUpdate;
batchmove1.Execute;
batAppendUpdate追加更新模式如果源表中有与目的表匹配的记录,则替换目的表记录,否则,直接追加到目的表中。目的表必须事先存在且有一已定义的索引用来匹配源表中的记录。
Tdest.IndexFieldNames:='code';
batchmove1.source=Tsource;
batchmove1.destination=Tdest;
batchmove1.Mode:=batAppendUpdate;
batchmove1.Execute;
batCopy拷贝模式按源表结构生成新表,源表中的数据同时拷贝到目的新表中。如果要生成的新表已存在,则覆盖。
//按Test1.dbf生成新表xxx.dbf
//如果不指定扩展名dbf,生成的新表将是Paradox格式的xxx.db。
Tdest.TableName:='xxx.dbf';
batchmove1.source=Tsource;
batchmove1.destination=Tdest;
batchmove1.Mode:=batCopy;
batchmove1.Execute;
batDelete删除模式删除目的表中与源表匹配的记录。目的表必须事先存在且有一已定义的索引用来匹配源表中的记录。
Tdest.IndexFieldNames:='code';
batchmove1.source=Tsource;
batchmove1.destination=Tdest;
batchmove1.Mode:=batDelete;
batchmove1.Execute;
----TBatchMove还有一个重要属性ChangedTableName,在实际运用中,通过指定ChangedTableName属性可以创建一个Paradox表,该表用来保存目的表中被更改数据的原始备份,有了这个备份表就可以确保恢复目的表中的数据。
----顺便提一句,如果要删除某一个表中的全部记录,可以采用Table组件的EmptyTable方法,例如Tdest.EmptyTable将清空Tdest所指定的表test2.dbf。
----
[1]
[2]
下一页
文章录入:enadd 责任编辑:enadd
上一篇文章:
使用SQL实现字段数据的模糊查询
下一篇文章:
在Delphi3程序中自动检测、建立数据库别名和表格
【
发表评论
】【
加入收藏
】【
告诉好友
】【
打印此文
】【
关闭窗口
】
最新热点
最新推荐
相关文章
为Delphi提供Pack和Undelete…
如何 Pack dBASE资料档
利用Delphi开发网络数据库应…
利用Delphi开发响应用户输入…
精简Delphi数据库应用系统-…
掀开SQL Server 7.0的面纱
如何在注册表中注册BDE
Delphi如何实现在一个Dbgrid…
计算字段值
数据库日期显示
网友评论:
(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
|
设为首页
|
加入收藏
|
联系站长
|
友情链接
|
版权申明
|
管理登录
|
Copyright ©2000 - 2005
Enadd
.com
备案序号:辽ICP备06005595号
QQ:1656107
站长:
enadd