用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的区别在于如果出现了重复的姓名
则不传输。
好了,就是这样,你试试吧,应该可以的。祝 顺利!

解决方案 »

  1.   

    不过我倒有个问题想问你:你说你既然是新手,怎么会有86分的问题点数呢?
    而且你说的是你对delphi一毛不懂?我只是问问,没有其他的意思^_^!
      

  2.   

    我说过了,我原来只会用VB。在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分如何?
      

  3.   

    在Porodox数据库中好象不支持多表间的更新啊!
    关于“不是在同一个目录下。如何把他们连接呢?”,只有将某一个BatchMove到另一个所在目录下再连接了。
      

  4.   

    我建议不要使用SQL,直接编码控制:
    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;
      

  5.   

    使用locate语句的时候,设定的条件应该多一点。这样才能保证数据定位正确。具体可以参考locate的帮助文档
      

  6.   

    如果我把SDF.DBF 转换成DB数据库,如何执行UPDATE 语句?