在主窗口中用个adoconnection 链接数据库(sql2000)  其他窗口都用adoquery链接adoconnection
     这样的话adoquery设置的时候active要改成ture,那么SQL中应该怎么写?比如我一个数据库有俩表(表1  表2)  一个界面有四个edit框要获取数据库中的值。第一个获取表1一共有多少量(count(*))第二个获取表1中列1中的某个值,第三个获取表二中的列3中的某个值,第四个也获取表2中列4中的某个值,这样的话需要几个adoquery,他们的sql语句应该怎么写?   谢了

解决方案 »

  1.   

    只用一个adoquery就行了,执行查询后,赋值,再active:= false;再查询,再赋值...adoquery1.sql.text:= 'select count(*) from 表1 group by AColumn';
    adoquery1.active:= true;
    edit1.text:= adoquery1.fields.asstring;
    adoquery1.active:= false;
    adoquery1.sql.text:= 'select Acol1 from 表1 where ...
    ...
      

  2.   

    AdoQuery.Open;
    如果是执行类SQL的话,用
    AdoQuery.ExecSql;
      

  3.   

    需要三个ADOQuery;
    一个获取count
    一个获取表1数据
    一个获取表2数据
      

  4.   

    二个可以了
    with adoquery1 do begin
      sql.clear;
      sql.add('SELECT * FROM 表1');
      open;
    end;
    edit1.text:=IntToStr(ADOQuery1.RecordCount);
    edit2.text:=adoquery1.FieldByName('C1').AsString;
    edit3.text:=adoquery1.FieldByName('C2').AsString;
    edit4.text:=adoquery1.FieldByName('C3').AsString;
    with adoquery2 do begin
      sql.clear;
      sql.add('SELECT * FROM 表2');
      open;
    end;
    edit1.text:=IntToStr(ADOQuery2.RecordCount);
    edit2.text:=adoquery2.FieldByName('C1').AsString;
    edit3.text:=adoquery2.FieldByName('C2').AsString;
    edit4.text:=adoquery2.FieldByName('C3').AsString;
    是这意思吧