请问高手如果用ADOquery实现多次不同表的进行查询。将每一次返回的记录集赋值给分别相应的Combox中。

解决方案 »

  1.   

    就是说用一个combox1控件关联adoquery1中的sql记录集的某一个字段名如: 部门名称。而部门名称来自一个Department 中的表。同时又用一个combox2控件关联adoquery1中的一个执行新的sql语句返回的记录集的某一个字段名如: 职位名称。而职位名称来自一个Position表。
      

  2.   

    combox1 <-> adoquery1 <-> SELECT 部门名称 FROM Department
    combox2 <-> adoquery1 <-> SELECT 职位名称 FROM Position关键是: 你的这两表是如何关联的,还是不明白你要干什麽?
            实在不行,贴出你的表结构...
      

  3.   

    先查一次,给combobox1赋值;close;再查一次,给combobox2赋值。如果combobox1的当前值对combobox2有约束作用,建议在选择combobox1以后进行第二次查询。不能用dbcombobox。
      

  4.   

    ADOQUERY。SQL。TEXT:=‘SELECT DEPARTMENT。部门名称 POSITION。职位名称 FROM DEPARTMENT,POSITION WHERE DEPARTMENT。关联字段=POSITION。关联字段 ’
    WITH NOT ADOQUERY1。EOF DO 
    BEGIN
      COMBOBOX1。ITEM。ADD(ADOQUERY1。FIELDBYNAME(‘部门名称’)。ASSTRING);
      NEXT;
    END;
    WITH NOT ADOQUERY1。EOF DO 
    BEGIN
      COMBOBOX2。ITEM。ADD(ADOQUERY1。FIELDBYNAME(‘职位名称’)。ASSTRING);
      NEXT;
    END;
      是这个意识吗?
      

  5.   

    用动态SQL:
    procedure tform1.button1();
    begin
       with adoquery1 do
       begin 
         close;
         clear; 
         sql.add('select * from Position);
         open;
         first;
         edit;
        while not eof do
        begin
          combox1.items.add(fieldbyname(' 部门名称').asstring;
          next;
          edit;
        end;
       end;
       with adoquery1 do
       begin 
         close;
         clear; 
         sql.add('select * from Department');
         open;
         first;
         edit;
        while not eof do
        begin
          combox2.items.add(fieldbyname(' 职位名称).asstring;
          next;
          edit;
        end;
       end;
    end;