用batchmove组件。这个组件是专门用来批量处理数据的。具体方法:
假设:水电费:sdf.db(因为你说的数据库是paradox);工资:gz.db
两个table:
table1--sdf.db
table2--gz.db
放一个batchmove1;
设定batchmove的destination为:table2;
source为:table1;
然后在代码里加入(可以是一个按钮的onclick事件):
with batchmove1 do
begin
mode:=batappend;
execute;
end;
如果你的两个库的字段顺序不一样,则要用database desktop
在两个库里的second index里设置一个第二索引。为索引取同样的名字;
比如你说的按姓名传输数据,则两个库里第二索引都要选择“姓名”这个字段;
batchmove的mode有四种:BatAppend,BatAppendUpdate,BatCopy和BatDelete,按你的
说法,应该使用BatAppend,它和BatAppendUpdate的区别在于如果出现了重复的姓名
则不传输。
好了,就是这样,你试试吧,应该可以的。祝 顺利!
假设:水电费:sdf.db(因为你说的数据库是paradox);工资:gz.db
两个table:
table1--sdf.db
table2--gz.db
放一个batchmove1;
设定batchmove的destination为:table2;
source为:table1;
然后在代码里加入(可以是一个按钮的onclick事件):
with batchmove1 do
begin
mode:=batappend;
execute;
end;
如果你的两个库的字段顺序不一样,则要用database desktop
在两个库里的second index里设置一个第二索引。为索引取同样的名字;
比如你说的按姓名传输数据,则两个库里第二索引都要选择“姓名”这个字段;
batchmove的mode有四种:BatAppend,BatAppendUpdate,BatCopy和BatDelete,按你的
说法,应该使用BatAppend,它和BatAppendUpdate的区别在于如果出现了重复的姓名
则不传输。
好了,就是这样,你试试吧,应该可以的。祝 顺利!
解决方案 »
- 如何动态改变chart中曲线的颜色啊?
- delphi 进程问题
- 新年首贴:100分讨论,在数据库设计中,字段冗余带来的好处和风险
- 网上找到的一个PAS,但不知道怎么用(去除WebBrowser的 3D边框、滚动条、右键菜单)
- 请教这句话是什么意思?if InputDlg.ShowModal = mrok then
- 如何在一个窗体中调用另外一个窗体?
- 求控件:DBGrid表格全部选中,类似于EXCEL!
- 关于ADO编程的高级问题?
- 写什么代码--退出一个过程
- form create,free的问题?在线等待!!!!
- 请问各位谁有支持*.PDF文件格式的阅读器或在哪下载也可以,谢谢!
- 报表处理组件 BY DELPHI
而且你说的是你对delphi一毛不懂?我只是问问,没有其他的意思^_^!
还有。我觉得你可能是我表述不清楚。
我现在的问题是。工资系统中已经有人名了。SDF中,也有人名。但是顺序不一样。SDF。DBF是DBASE3格式的文件。工资是DELPHI默认的数据库格式。
我需要依照工资系统中的姓名和SDF中的姓名来对传数据。如果是VB下SQL 可能是这样:update gzdata,sdf set gzdata.pen1=sdf.水电费 where gzdata.姓名=sdf.姓名
但是我按如上格式执行TQUERY 的SQL 语句提示出错。 请帮忙看看如何处理。
还有SDF。DBF 和 GZDATA。DB 不是在同一个目录下。如何把他们连接呢?我先给您60分如何?
关于“不是在同一个目录下。如何把他们连接呢?”,只有将某一个BatchMove到另一个所在目录下再连接了。
1。允许从SDF中选择要传输的数据
2。
while not TableSDF.eof do{这里的tablesdf保存要传输的数据}
begin
Xm := TableSdf.fieldbyname('姓名').asstring; if TableGZ.locate('姓名',xm,LOCASEINSENSITIVE) then
begin
TAbleGZ.edit;
TableGZ.fieldbyname('pen1').asfloat :=
TableSDF.fieldbyname('水电费').asfloat;
end else
begin
TAbleGZ.append;
TableGZ.fieldbyname('pen1').asfloat :=
TableSDF.fieldbyname('水电费').asfloat;
end; TAbleGZ.post;
TAbleSDF.next;
end;