我的数据库是Access数据库,前台用Delphi写的程序.我用Top 10想取前10条,但是为什么返回的数据总是所有的数据,不知道这是怎么回事??帮忙解决!!多谢了!!
语句如下:
strsql:='select top 10 * from kzlk order by usepl desc';
ADOQcon.Close;
ADOQcon.SQL.Clear;
ADOQcon.SQL.Text:=strsql;
ADOQcon.Open;
dx_num:=ADOQcon.RecordCount;结果dx_num的值总是所有的数值,而不是10??
这是为什么??

解决方案 »

  1.   

    没发现哪不对....
    楼主把取出来的数据放到一个DBGRID中看看是不是也是全部数据....
      

  2.   

    不知道Access支持Top关键字不?
      

  3.   

    Top好像只有SQLServer支持吧,Aceess好像不行的
      

  4.   

    刚刚试用SQLSERVER2000做数据库没有问题
      

  5.   

    with ADOQueryHelp do
      Begin
        Close;
        SQL.Text := 'select top 10 * From StudentTbl order by PersonNo desc';
        Open;
      end;
      showmessage(inttostr(ADOQueryHelp.RecordCount));
    我这么做返回的是10哦
    也是ACCESS做数据库的。你的代码具体是什么?可以都提供么?
      

  6.   

    我看了确实是全部.我的里面有20条,结果为20,并且DBGrid中是全部数据。
    代码就是上面的,没有其他了,其他的和数据库无关。
      

  7.   

    with ADOQueryHelp do
      Begin
        Close;
        clear;
        SQL.Text := 'SELECT TOP 10 *FROM jzxx ORDER BY jzxx.结帐单号 DESC';;
        Open;
      end;
      showmessage(inttostr(ADOQueryHelp.RecordCount));
      

  8.   

    呵呵,我碰见过这问题
    access的top是有问题
    后面加个order by id desc就可以了,