比如说用query控件,select * from table1
这样取出了表table1中的n条记录,如果想读取第m条记录(0<m<n),应该怎么写语句呢??

解决方案 »

  1.   

    看你用什么数据库了
    有些是支持直接写sql语句的
    如interbase用 select first 等等
      

  2.   

    我用的是sql server
    query.recno:=m  这样写可以吗?
      

  3.   

    回复人: sulemon(苏檬) ( ) 信誉:87  2004-07-11 14:23:00  得分: 0  
     
     
       我用的是sql server
    query.recno:=m  这样写可以吗?
     
     
    ------------------你试一下不就知道了
      

  4.   

    做个循环不是就好了,查出来以后做一个i=0 movenext的循环不是就可以解决了吗?
      

  5.   

    循环是肯定可以的,不过这样会比较浪费时间,如果表中的记录多的话
    最好还是用sql语句来写把
      

  6.   

    什么数据库?
    MSSQl就用存储过程实现。做法请查阅DelphiBBS离线资料
    Oracle就用rownum伪列实现。
      

  7.   

    如下方法可以解决问题:
    with adoquery1 do
    begin
      close;
      sql.clear;
      sql.add('select * from table1');
      open;
      first;
      moveby(m);  //移向后第m条记录;
    end;
      

  8.   

    如果是sqlserver,这个表有主键的化,可以通过下面的语句来取得
    select * from atable 
    where id =(
    select top 1 id from aTable order by id
    where id not in (select top n id from aTable order by id)
    )