| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 8432 人关注过本帖
标题:如何获得临时表的记录数?
只看楼主 加入收藏
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
结帖率:99.55%
收藏
 问题点数:0 回复次数:6 
如何获得临时表的记录数?
下面这段代码是自动分类编号用的。通过SELECT语句将指定编号范围的记录挑选到临时表中,若是有记录则在最大的编号上自动加1,作为新的编号;若是些范围没有记录,则在编号的基数上加1,作为该范围的第一个编号。
其中的asp3l和asp3h是编号范围的闭区间。
在下面的代码中,RECC()函数获得的记录数始终是原表qsl3的,无法获得临时表l3bh的记录数,即使在第二行加了select l3bh命令也没有用。请大家帮我分析一下是何原因,先谢谢各位!

SELECT * FROM qsl3 WHERE (elbh>asp3l .AND. elbh<asp3h) ORDER BY elbh INTO CURSOR l3bh   &&筛选同类的商品
SELECT l3bh                        &&加上这行也没有用
IF RECCOUNT() > 0
    GO BOTTOM
    aspxh = elbh + 1               &&在原编号上自动加1
ELSE
    aspxh = asp3l + 1              &&确定新的连续编号
ENDIF
USE                                &&关闭临时表
搜索更多相关主题的帖子: 记录 
2008-09-29 10:18
ibmlang_002
Rank: 5Rank: 5
来 自:浙江-嘉兴
等 级:贵宾
威 望:18
帖 子:437
专家分:176
注 册:2008-8-30
收藏
得分:0 
程序应该没有问题。你在recc()中加入工作区试试

VFP
2008-09-29 11:09
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
收藏
得分:0 
谢谢版主回复!加上工作区还是不行。

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2008-09-29 12:19
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
收藏
得分:0 
真是郁闷,这个问题从昨天下午到今天上午都没有查到原因,我改成下面的才达到目的,但我不知道到底是什么原因引起的。
SELECT * FROM qsl3 WHERE (elbh>asp3l .AND. elbh<asp3h) ORDER BY elbh INTO CURSOR l3bh   &&筛选同类的商品
SELECT l3bh
GO BOTTOM
aspxh = elbh
IF aspxh > 0
    aspxh = elbh + 1               &&在原编号上自动加1
ELSE
    aspxh = asp3l + 1              &&确定新的连续编号
ENDIF
USE                                &&关闭临时表

[[it] 本帖最后由 hu9jj 于 2008-9-29 12:47 编辑 [/it]]

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2008-09-29 12:46
ibmlang_002
Rank: 5Rank: 5
来 自:浙江-嘉兴
等 级:贵宾
威 望:18
帖 子:437
专家分:176
注 册:2008-8-30
收藏
得分:0 
我在VFP7.0和9.0都运行很正常的。很奇怪

[[it] 本帖最后由 ibmlang_002 于 2008-9-29 12:58 编辑 [/it]]

VFP
2008-09-29 12:56
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
收藏
得分:0 
我也是VFP9sp1,梅子论坛下载的。原来在另一个项目中也是这样使用的,移到这个项目中就出问题了。前面的recc()检测到的是原表的记录数,而紧接的字段 elbh得到的却是临时表的内容。
在if之前如果不用select l3bh和go botte语句,用变量 aspxh=elbh得到也是原表的数据,用了这两条语句之后才能得到临时表的数据。真是奇怪了!

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2008-09-29 15:20
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
临时表记录数:_TALLY
临时表名称不能以数字开头,把名称改下试试
SELECT * FROM qsl3 WHERE (elbh>asp3l .AND. elbh<asp3h) ORDER BY elbh INTO CURSOR l3bh
上面这行代码,运行时怎么会没有发生错误

验证下面的代码
CREATE TABLE AA (BH C(2))
INSERT INTO AA VALUES ('01')
INSERT INTO AA VALUES ('02')
SELECT * FROM AA INTO CURSOR 123bb
CLOSE DATABASES
ERASE AA.DBF

[ 本帖最后由 sdta 于 2014-4-3 10:23 编辑 ]

坚守VFP最后的阵地
2014-03-23 15:47
快速回复:如何获得临时表的记录数?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.029358 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved