| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1978 人关注过本帖
标题:如何判定某列有无记录
只看楼主 加入收藏
fdqzy
Rank: 1
等 级:新手上路
帖 子:368
专家分:0
注 册:2016-8-15
结帖率:73.97%
收藏
已结贴  问题点数:20 回复次数:8 
如何判定某列有无记录
如表1:
   


程序代码:
create cursor b1 (jnh N(2),mm c(3),fmm c(3))
insert into b1 values (1,"","M2")
insert into b1 values (2,"","M2")
insert into b1 values (3,"","")
FOR i=2 TO FCOUNT()
    SELECT * FROM b1 WHERE !EMPTY(FIELD(i)) 
    RETURN
endfor    

无法查询
程序代码:
create cursor b1 (jnh N(2),mm c(3),fmm c(3))
insert into b1 values (1,"","M2")
insert into b1 values (2,"","M2")
insert into b1 values (3,"","")
FOR i=2 TO FCOUNT()
    SELECT * FROM b1 WHERE !EMPTY(mm) 
    RETURN
endfor    

可以查询
为什么?
判定某列有无记录用FIELD() 应怎么写?

[此贴子已经被作者于2020-11-1 21:05编辑过]

搜索更多相关主题的帖子: 记录 某列 values insert into 
2020-11-01 20:23
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9805
专家分:26913
注 册:2012-2-5
收藏
得分:5 
https://bbs.bccn.net/thread-503713-1-1.html 2楼回帖
要善于总结别人的回帖

坚守VFP最后的阵地
2020-11-01 21:35
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9805
专家分:26913
注 册:2012-2-5
收藏
得分:0 
程序代码:
CLEAR 
create cursor b1 (jnh N(2),mm c(3),fmm c(3))
insert into b1 values (1,"","M2")
insert into b1 values (2,"","M2")
insert into b1 values (3,"","")
FOR lnj = 1 TO FCOUNT()
    n1 = RECCOUNT()
    SCAN 
        c1 = EVALUATE(FIELD(lnj))
        IF EMPTY(c1)
            n1 = n1 - 1
        ELSE
            EXIT 
        ENDIF 
    ENDSCAN 
    IF n1 = 0
        ? TRANSFORM(lnj) + "列为空"
    ENDIF 
ENDFOR

坚守VFP最后的阵地
2020-11-01 21:43
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10543
专家分:42958
注 册:2014-5-20
收藏
得分:5 
只是判断某列有无记录,可用LOCAT命令查找,如:
程序代码:
SELECT b1
FOR i=2 TO FCOUNT()
    ? fun(i)
ENDFOR

FUNCTION fun(i)
    LOCATE FOR !EMPTY(EVALUATE(FIELD(i)))
    RETURN FOUND()
ENDFUNC

2020-11-01 22:16
whinda
Rank: 6Rank: 6
等 级:贵宾
威 望:13
帖 子:253
专家分:418
注 册:2012-2-4
收藏
得分:5 
你这个FOR循环中用的Return有什么意义?
2020-11-01 22:35
fdqzy
Rank: 1
等 级:新手上路
帖 子:368
专家分:0
注 册:2016-8-15
收藏
得分:0 
以下是引用吹水佬在2020-11-1 22:16:50的发言:
    LOCATE FOR !EMPTY(EVALUATE(FIELD(i)))

我总是忘了动态字段的动态表达式
2020-11-02 04:51
fdqzy
Rank: 1
等 级:新手上路
帖 子:368
专家分:0
注 册:2016-8-15
收藏
得分:0 
以下是引用sdta在2020-11-1 21:35:25的发言:

https://bbs.bccn.net/thread-503713-1-1.html 2楼回帖
要善于总结别人的回帖

这方面确实做得差,没想到照帖变动一下,谢谢!
2020-11-02 04:59
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:109
帖 子:2197
专家分:3838
注 册:2007-4-27
收藏
得分:5 
以下是引用fdqzy在2020-11-1 20:23:30的发言:

如表1:
   


create cursor b1 (jnh N(2),mm c(3),fmm c(3))
insert into b1 values (1,"","M2")
insert into b1 values (2,"","M2")
insert into b1 values (3,"","")
FOR i=2 TO FCOUNT()
    SELECT * FROM b1 WHERE !EMPTY(FIELD(i))
    RETURN
endfor   
无法查询
create cursor b1 (jnh N(2),mm c(3),fmm c(3))
insert into b1 values (1,"","M2")
insert into b1 values (2,"","M2")
insert into b1 values (3,"","")
FOR i=2 TO FCOUNT()
    SELECT * FROM b1 WHERE !EMPTY(mm)
    RETURN
endfor   
可以查询
为什么?
判定某列有无记录用FIELD() 应怎么写?


如何算空列? 比如说表ABC.dbf中有5000条记录,第N个字段在每一条记录都为空算空的字段,还是某一记录上有记录的,也算空字段?

只求每天有一丁点儿的进步就可以了
2020-11-03 14:13
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:109
帖 子:2197
专家分:3838
注 册:2007-4-27
收藏
得分:0 
  SELECT 0
  USE 你的表
  FOR i=1 TO FCOUNT()
    c_fiel=FIELD(i)
    sn=0
    GO top
    SCAN
      IF !EMPTY(&c_fiel.) then
        sn=sn+1
      ENDIF
      SELECT bmk
    ENDSCAN
    IF sn=0 then
        ? "空值的字段为:"+c_fiel
    ENDIF
  ENDFOR

只求每天有一丁点儿的进步就可以了
2020-11-03 14:43
快速回复:如何判定某列有无记录
数据加载中...
 
   



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

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