标题:查询之后,怎么判断是否打到?
只看楼主
不懂才问
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:大草原
等 级:贵宾
威 望:29
帖 子:1501
专家分:6573
注 册:2010-7-5
结帖率:91.53%
已结贴  问题点数:20 回复次数:11 
查询之后,怎么判断是否打到?
程序代码:
lcClmc='劳保套装'  &&假设接收的材料是这个,价值354一套
SELECT 材料总计
GO BOTTOM
IF BOF()
    INSERT INTO 材料总计 (材料编号,型号明细) VALUES (1,lcClmc)
    laCllsA(5)=1
ELSE
    SELECT 材料编号 FROM 材料总计 WHERE 型号明细==lcClmc TO tempArray
    LOCATE FOR 型号明细==lcClmc
    IF FOUND()
        laCllsA(5)=材料编号
    ELSE
        CALCULATE MAX(材料编号) TO laClzj(1)
        INSERT INTO 材料总计 (材料编号,型号明细) VALUES (laClzj(1)+1,lcClmc)
        laCllsA(5)=laClzj(1)+1
    ENDIF
ENDIF


这段程序的大概意思是  假设在表单上的文本框中输入了一个“劳保套装”

要先判断“材料总计”是空表还是有数据,再判断有数据的情况下,有没有这个材料?

如果是空表,把这个“劳保套装”当做第一条记录

如果不空,并且有这条记录,得到对应的“材料编号”

如果不空,还没有,获得目前最大材料编号,再+1,当做这个“劳保套装”的编号,并把他加入表

现在的问题是:

用SELECT或LOCATE查询之后,要怎么判断是否找到啊?

看帮助,都没写找到之后的事  

https://bbs.bccn.net/thread-427496-1-1.html  里说  张洪举《Visual FoxPro权威指南》  一本足矣的   我无语了。。。

从167页讲SELECT-SQL,一直到193页,对查询到之后该怎么用  一句都没提  。。。
搜索更多相关主题的帖子: color 价值 
2016-01-05 00:14
不懂才问
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:大草原
等 级:贵宾
威 望:29
帖 子:1501
专家分:6573
注 册:2010-7-5
得分:0 
我写那个

IF FOUND()
        laCllsA(5)=材料编号

对不对啊?

报告老师,我低头不是因为我在装低调,是你问的问题,我真的不会答,,,
2016-01-05 00:15
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:5 
以下是引用不懂才问在2016-1-5 00:15:12的发言:

我写那个

IF FOUND()
        laCllsA(5)=材料编号

对不对啊?

LOCATE...对啊
FOUND()也适用判断执行 CONTINUE、FIND、SEEK 命令之后是否成功
2016-01-05 08:06
wangzhiyi
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:34
帖 子:366
专家分:684
注 册:2014-4-9
得分:5 
程序应该没什么问题吧。但是估计你的程序在执行的时候即使数据表里有记录,你也不一定能找到,原因出在这一句LOCATE FOR 型号明细==lcClmc,建议你修改为:LOCATE FOR allt(型号明细)==allt(lcClmc)
2016-01-05 08:20
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:108
帖 子:2175
专家分:3785
注 册:2007-4-27
得分:5 
有时用户在输入“劳保套装”时,不知不觉在某个位置加入了空格,眼睛是看不出来的,需要你用命令去掉

只求每天有一丁点儿的进步就可以了
2016-01-05 08:45
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
得分:0 
楼上细心,最好加用alltrim()
2016-01-05 09:08
liuxingang28
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:山东济南
等 级:贵宾
威 望:47
帖 子:649
专家分:2156
注 册:2014-2-7
得分:5 
1. 执行 select 命令后,可通过判断系统变量 _tally 的值是否大于 0 来确定是否找到记录

   select * from 表 to 数组
   if _tally > 0
      ? '找到记录'
   else
      ? '未找到记录'
   endif

2. 关于对 select 查询结果的处理,太 easy 了,不知道楼主为何有此疑问。一般情况下,我喜欢将查询结果输出至 cursor(游标)。对游标的处理与普通表并无不同,可以查询或编辑(编辑时,需在 select 语句后加 readwrite 选项)

泉城飞狐
2016-01-05 12:50
不懂才问
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:大草原
等 级:贵宾
威 望:29
帖 子:1501
专家分:6573
注 册:2010-7-5
得分:0 
以下是引用liuxingang28在2016-1-5 12:50:32的发言:

关于对 select 查询结果的处理,太 easy 了

书上的例子  原来是因为太EASY  而省略了  我讨厌作者  。。。  这样就显的我很小白  。。。

报告老师,我低头不是因为我在装低调,是你问的问题,我真的不会答,,,
2016-01-05 19:16
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:0 
打啥?

授人以渔,不授人以鱼。
2016-01-05 21:01
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:0 

授人以渔,不授人以鱼。
2016-01-05 21:10



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-460838-1-1.html




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

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