1. 论坛系统升级为Xenforo,欢迎大家测试!
    排除公告

请教ASP问题。

本帖由 cmcm1632006-05-12 发布。版面名称:后端开发

  1. cmcm163

    cmcm163 New Member

    注册:
    2005-12-23
    帖子:
    59
    赞:
    0
    我要实现这样的功能,比如当前有100条记录,我要读取第97-90条,

    我的思路是从ID总数减3开始读,读7条记录出来,但是代码就老是写不出来,高手拉我的把。。。

    代码如下。


    sql="select top 7 * from Article where ArticleID<[这里就不知道怎么用了] order by UpdateTime desc"
     
  2. 小叶

    小叶 New Member

    注册:
    2005-09-04
    帖子:
    17,941
    赞:
    33
    sql="select top 7 * from Article where ( ArticleID>=90 and ArticleID<=97) order by UpdateTime desc"

    ??
     
  3. cmcm163

    cmcm163 New Member

    注册:
    2005-12-23
    帖子:
    59
    赞:
    0
    不可以这样的,因为文章的总数总是在变化。。。。
    100有可能变成999
     
  4. 小狼

    小狼 New Member

    注册:
    2006-03-15
    帖子:
    163
    赞:
    1
    叶子的算法没有错误,
    因为他取的是第97-99的标题,
    不管文章标题数是不是999
     
  5. 风狼

    风狼 New Member

    注册:
    2005-10-01
    帖子:
    7,452
    赞:
    25
    要不楼主可以分两次运算呀
    strsql1="select top 100 * from 表 oder by id desc"
    objRs.open strsql1,conn,1,1
    然后再
    objRs.Move 3

    这样应该可以吧。。
     
  6. 小叶

    小叶 New Member

    注册:
    2005-09-04
    帖子:
    17,941
    赞:
    33
    SELECT A.*
    FROM Article AS A
    WHERE ID<=(SELECT MAX(S.ID) AS TID
    FROM Article AS S)-3 AND ID>=(SELECT MAX(S.ID) AS TID
    FROM Article AS S)-10;
     
  7. 小叶

    小叶 New Member

    注册:
    2005-09-04
    帖子:
    17,941
    赞:
    33
    SQL ="SELECT A.* FROM Article AS A WHERE ID<=(SELECT MAX(S.ID) AS TID FROM Article AS S)-3 AND ID>=(SELECT MAX(S.ID) AS TID FROM Article AS S)-10"
     
  8. 小叶

    小叶 New Member

    注册:
    2005-09-04
    帖子:
    17,941
    赞:
    33
    我刚次误解了他的意思。
     
  9. cmcm163

    cmcm163 New Member

    注册:
    2005-12-23
    帖子:
    59
    赞:
    0
    小叶,你是一个正直的人。:cool:
     
  10. Tameway

    Tameway New Member

    注册:
    2005-09-06
    帖子:
    1,286
    赞:
    8
    可以这样来实现,例如需要读取第M条到第N条记录(M<N)

    例如M=51,N=60

    要读取中间的10条数据

    不能使用ID来定义,因为有可能有某些记录是被删除了的,ID不能保证读取的正确性

    首先SELECT TOP 60

    然后定义一个FOR I=1 TO 50

    RS一直在MOVENEXT但是不读取数据

    到了51条的时候,也就是说FOR循环结束后,才显示RS("字段名")

    这样的算法效率不很好,但也是没办法了