dbf文件内序号字段且不连续无重复,我想按序号排序后取前N条记录,可否有解?

Weibo.Huang 2012-03-06 06:24:56
dbf文件内序号字段且不连续无重复,我想按序号排序后取前N条记录,可否有解?
...全文
222 15 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
Weibo.Huang 2012-03-07
  • 打赏
  • 举报
回复
谢谢apple_8180,这就是我想要的!
我先试试看,应该没问题的
Weibo.Huang 2012-03-07
  • 打赏
  • 举报
回复
还有一问,如果我不用dbf自带的序号,我用别名来代替序号,如:
select cast(0 as int) as 序号 from tb1

请问这个序号有办法让它成为自增1的序号么?
即在select执行完后序号也自增完成
十豆三 2012-03-07
  • 打赏
  • 举报
回复
方法1:全部读到 C++ Builder,然后在 C++ Builder 端分页。
方法2:每次读取的指定记录数,如:
Select * from 表名 where Recno() between 1 and 10 && 这是第1页
Select * from 表名 where Recno() between 11 and 20 && 这是第2页
Select * from 表名 where Recno() between 21 and 30 && 这是第3页
taohua300 2012-03-07
  • 打赏
  • 举报
回复
我没明白你是要在C++ Builder中实现分页还是在vfp 中实现分页 ?
Weibo.Huang 2012-03-07
  • 打赏
  • 举报
回复
这个跟C++没关系,主要是看vfp本身能否实现
taohua300 2012-03-07
  • 打赏
  • 举报
回复
用C++ Builder 读取 dbf然后在C++ Builder 里的表格里分页显示 ?

那你应该去C/C++板块问问

没用过C++ Builder
Weibo.Huang 2012-03-07
  • 打赏
  • 举报
回复
不错,谢谢taohua300的顶力支持!
你给的例子已经实现分页了,但也仅限于VFP内,而我是想在自己和程序里读取dbf从而进行分页操作;
C++ Builder & DBF

不知VFP的分页功能有没有代码可以参照?

我目前的想法是记录上一页的序号和下一页的序号:
select top 10 * from tb1 order by 序号
where 序号>= (当前页最后一条记录的序号+1) //下一页
where 序号>= (上一页的起始序号) //上一页

请指教。。。
sdta2012 2012-03-07
  • 打赏
  • 举报
回复
表格设置显示10行
Page Up/Page Down 键
sdta2012 2012-03-07
  • 打赏
  • 举报
回复

学习了
taohua300 2012-03-07
  • 打赏
  • 举报
回复
vfp 的表格好像没有分页功能吧

写了一个简单的示例,你看看吧

用这种方法实现的分页功能

在1G 内存,xp sp3,闪龙 3000+的机器上10万条记录来回切换没有迟钝的感觉

40 万条记录的时候稍微有一点

当然,这只是测试的一个字段的简单表

一会上传完示例我再贴下载链接
Weibo.Huang 2012-03-06
  • 打赏
  • 举报
回复
谢谢一楼,不过我想要实现分页的功能,如果有50条记录并按10条为一页,请问如何查询?
dfwxj 2012-03-06
  • 打赏
  • 举报
回复
1楼正解
lygcw9602 2012-03-06
  • 打赏
  • 举报
回复
[Quote=引用楼主 huanghuibo 的回复:]
dbf文件内序号字段且不连续无重复,我想按序号排序后取前N条记录,可否有解?
[/Quote]
请仔细地研究SQL-SELECT的用法,详见VFP帮助说明文件。
taohua300 2012-03-06
  • 打赏
  • 举报
回复
select top 10 * from 表 order by 序号 &&取排序后的前 10 条记录

2,748

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧