既然已经调用,那么只有保证两个库中的no 字段相同就可以了。我可以介绍个方法。
with Query1 do begin  
  Close;
  SQL.Clear;
  SQL.Add('select no,*,* From a where 条件 order by 索引字段');
  Open;
  RecNO:=i
  Edit;
  Fields[0].AsString:='as string';
  Post;
end;Query2.的方法相同。你看看如何保证两个表的排列顺序相同。可以定义一个auto 字段 用 order by  auto  字段来保证两表的记录顺序相同。

解决方案 »

  1.   

    你凭什么对B-》NO进行修改???
    是凭两库NO值相等吗?如是:
    1、修改前将A-》NO值存入一变量v1
    2、修改A—》NO值,并存入另一变量v2
    3、使用SQL的update,条件为NO=V1,并将其值改为V2
      

  2.   

    没有任何条件,只要A库中有修改(添加&册除)即B库作相应修改。
      

  3.   

    重新说明问题:有A,B两个DBF库分别由query1,query2调用并通过DBNavigator控件进行添加&删除,我想把A库的NO字段内容放入B库NO字段并在修改A库NO字段时自动对B库作对应修改(即:实现B库NO字段内容由A库转入),请问如何实现?
      

  4.   

    为什么不考虑在数据库端用triger来解决呢?
    比如在表1增加一个after update的触发器,检测你关心的那个字段有否修改,有的话就把表2的相应记录也作修改即可。这样在编程时就不用化心思考虑如何同步的问题啦。
      

  5.   

    dbf 中有 triger马?
    在 query1的after post中写;
    query1 id  与 query2 的 id 是一对一的
    别忘了设置requeryliveprocedure TForm1.Query1AfterPost(DataSet: TDataSet);
    var
      i:integer;
      s1:string;
    begin
      i:=query1.Fieldbyname('id').AsInteger;
      s1:=query1.Fieldbyname('No').AsString;
      if query2.Locate('id',i,[]) then
      begin
        query2.Edit;
        query2.Fieldbyname('no').AsString := s1;
        query2.Post;
      end;
    end;
      

  6.   

    多谢newyj(老鬼)兄,不过还没试,请稍等!
      

  7.   

    不过可否再请教一问题:
    有一kcbp.dbf库:
    学号(sid)、姓名(nam)、座位号(01-30)、科目代码(jh)、试室编号(kdh)、试室名称(kdmc)请问
    1.如何按先科目代码顺序、接着按试室编号顺序、以学号顺序编排试室,每试室最多只能有30名考生。
    2如何给考生编座位号,因库中的座位号字段是要求在编排后生成的。