既然已经调用,那么只有保证两个库中的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 字段来保证两表的记录顺序相同。
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 字段来保证两表的记录顺序相同。
是凭两库NO值相等吗?如是:
1、修改前将A-》NO值存入一变量v1
2、修改A—》NO值,并存入另一变量v2
3、使用SQL的update,条件为NO=V1,并将其值改为V2
比如在表1增加一个after update的触发器,检测你关心的那个字段有否修改,有的话就把表2的相应记录也作修改即可。这样在编程时就不用化心思考虑如何同步的问题啦。
在 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;
有一kcbp.dbf库:
学号(sid)、姓名(nam)、座位号(01-30)、科目代码(jh)、试室编号(kdh)、试室名称(kdmc)请问
1.如何按先科目代码顺序、接着按试室编号顺序、以学号顺序编排试室,每试室最多只能有30名考生。
2如何给考生编座位号,因库中的座位号字段是要求在编排后生成的。