有两个Adoquery控件,连接同一个表,现在adoquery中的游标指向第六条记录,这时  adoquery2的游标也指向第6条记录。同理如果指向第8条, tadoquery2的游标也指向第8条
我不想共用一个数据集,我现在还不怎么会用游标。
而且最好用SQL语句,不要用locate

解决方案 »

  1.   

    不要用locate?
    用RecNo试试,当然两个adoquery的结果集要一致
    adoquery2.RecNo := adoquery.RecNo;
      

  2.   

    试一下两种方法:
    方法一:利用书签(使用了两个adoquery,取同一个表的数据)
    procedure TForm1.adoquery1AfterScroll(DataSet: TDataSet);
    var bk:tbook;
    begin
      if form1.Showing then//窗体打开后才调用下面的功能!
      try
        bk:=dataset.GetBook;
        adoquery2.GotoBook(bk);
      finally
        dataset.FreeBook(bk);
      end;
    end;
    //注存在问题,必须adoquery1,adoquery2的数据结构完全一样才可以,否则不能成功方法二:
    procedure TForm1.adoquery1AfterScroll(DataSet: TDataSet);
    begin
      try
        if adoquery2.Active then
        adoquery2.RecNo :=dataset.RecNo ;
      except;
      //
      end;
    end;
    //注意存在问题,必须adoquery1,adoquery2的sql语句完全一样才可以,否则不能得到满意结果
      

  3.   

    adoquery1.Sql...我們假設adoquery1所指表的關鍵字為Single_No
    在adoquery2中可使用Single_No與adoquery1建產相關聯
    adoquery2.SQL:select * from Table where Single_No=:Single_No
    在adoquery2中的參數據屬性中設參數Single_No的DataType屬性為ftFixedChar即通過關聯達到同步的目的
      

  4.   

    adoquery2.RecNo := adoquery.RecNo
    但这要看你的数据库是什么啦!
    如:FOXPROW,dBase就不支持RecNo
      

  5.   

    知道Master/Detail关系吗?你只要把表即当作Master又当作Detail,然后使用唯一标示的健值按照Master/Detail的规则联接俩张表就可以了
      

  6.   

    在事件adoquery1AfterScroll中,
    用adoquery1. GotoCurrent(Adoquery2);
    就行了.