如何取数据库服务器中查询记录的一部份?(20分)

  • 主题发起人 主题发起人 glglgl
  • 开始时间 开始时间
G

glglgl

Unregistered / Unconfirmed
GUEST, unregistred user!
C/S编程中,在应用程序服务器中运行ADOQuery.open时,
是否数据库服务器中所有查询的记录都传到应用程序
服务器中,这样太多了,而我只想要所有查询记录的
一部份,比如中间一部份,这样如何做?
 
query中加条件
 
哪取第11个至20个记录的SQL如何写?
 
rowid 如果是oracle的话

也可以在表增加一列,以记录行号
 
glglgl:
你可以对ADOQuery的CacheSize进行设置(其默认值是1)
如果你设置为其他整数比如10,那么他每次只取10条记录,当记录指针
超过时的时候,控件会自动去取之后的10条记录,依此类推
你可以利用这个属性试试
 
如果你是想每次都取10条记录,最后将所有记录都取回来,可以采用trustzhou的方法,
如果你是想在前一个查询的结果上再进行查询,可以嵌套的写SQL语句:
如:
select * from (select * form table where 条件1) where 条件2
 
其实你还可以在DELPHI中对你取到的数据集对象直接操作取第几到第几条记录,具体什么
是使用哪个dataset方法我很早没用了,你自己查查帮助。
 
To glglgl:
1、念性错误:SQL 中没有诸如“第11个至20个记录”的概念,因此也就没
有“取出第11个至20个记录”的方法。这就是为什么SQL中没有“记录号”的说
法的原因。
2、如果不是用 SQL ,可以用“记录号”的方法。

 
select top 10 * from table1
 
你不会没条件,随机的取数据吧!!!
 
多人接受答案了。
 
后退
顶部