| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 18586 人关注过本帖
标题:字段不能为 null 值 解决方案 ?
只看楼主 加入收藏
hyz00001
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:168
专家分:137
注 册:2012-10-5
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:13 
字段不能为 null 值 解决方案 ?
UPDATE jqrwd SET bqll =jqrwd.bqll+jq_1.amt,jqrwd.mat =jqrwd.mat +jq_1.mat,jqrwd.lab =jqrwd.lab +jq_1.lab,jqrwd.burden =jqrwd.burden +jq_1.burden,jqrwd.sub =jqrwd.sub +jq_1.sub,jqrwd.mei ='第一次核算 jq_1' from jq_1 WHERE jqrwd.no =jq_1.rwd AND !ISNULL(jq_1.rwd)


这句话的提示是字段不能为 null,

看看大神有木有解决方案,谢谢。

版本为 vfp9.0,系统为 win7.
搜索更多相关主题的帖子: 解决方案 null 
2014-05-22 00:03
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:5 
UPDATE jqrwd SET bqll =jqrwd.bqll+jq_1.amt,jqrwd.mat =jqrwd.mat +jq_1.mat,jqrwd.lab =jqrwd.lab +jq_1.lab,jqrwd.burden =jqrwd.burden +jq_1.burden,jqrwd.sub =jqrwd.sub +jq_1.sub,jqrwd.mei ='第一次核算 jq_1' from jq_1 WHERE jqrwd.no =jq_1.rwd AND !Empty(jq_1.rwd)

或者

UPDATE jqrwd SET bqll =jqrwd.bqll+jq_1.amt,jqrwd.mat =jqrwd.mat +jq_1.mat,jqrwd.lab =jqrwd.lab +jq_1.lab,jqrwd.burden =jqrwd.burden +jq_1.burden,jqrwd.sub =jqrwd.sub +jq_1.sub,jqrwd.mei ='第一次核算 jq_1' from jq_1 WHERE jqrwd.no =jq_1.rwd AND ISNULL(jq_1.rwd)=.F.


[ 本帖最后由 sdta 于 2014-5-22 00:18 编辑 ]

坚守VFP最后的阵地
2014-05-22 00:16
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:5 
提示是字段不能为 null,

看看哪可能会出现null值
2014-05-22 05:53
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
收藏
得分:0 
表设计时不要给字段设置任何有效性检查的规则,而在程序中对所有要保存的数据进行有效性检查,符合要求后再保存到表中。就不会出现这个问题。

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2014-05-22 07:40
dalianliyang
Rank: 2
等 级:禁止发言
帖 子:37
专家分:23
注 册:2013-1-30
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2014-05-22 08:01
dalianliyang
Rank: 2
等 级:禁止发言
帖 子:37
专家分:23
注 册:2013-1-30
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2014-05-22 08:09
taifu945
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:80
帖 子:1545
专家分:3298
注 册:2012-7-6
收藏
得分:5 
以下是引用sdta在2014-5-22 00:16:44的发言:

UPDATE jqrwd SET bqll =jqrwd.bqll+jq_1.amt,jqrwd.mat =jqrwd.mat +jq_1.mat,jqrwd.lab =jqrwd.lab +jq_1.lab,jqrwd.burden =jqrwd.burden +jq_1.burden,jqrwd.sub =jqrwd.sub +jq_1.sub,jqrwd.mei ='第一次核算 jq_1' from jq_1 WHERE jqrwd.no =jq_1.rwd AND !Empty(jq_1.rwd)

或者

UPDATE jqrwd SET bqll =jqrwd.bqll+jq_1.amt,jqrwd.mat =jqrwd.mat +jq_1.mat,jqrwd.lab =jqrwd.lab +jq_1.lab,jqrwd.burden =jqrwd.burden +jq_1.burden,jqrwd.sub =jqrwd.sub +jq_1.sub,jqrwd.mei ='第一次核算 jq_1' from jq_1 WHERE jqrwd.no =jq_1.rwd AND ISNULL(jq_1.rwd)=.F.
.NULL.值在VFP中说得确切点应该被称为“不确定值”,而不是传统意义上的“空值”。所以,它在VFP中不能被EMPTY()检查到。另外,ISNULL(jq_1.rwd)=.F.相当于!ISNULL(jq_1.rwd),后者也是可以用的,楼主的语法方面好像看不出有什么错误。
2014-05-22 08:39
taifu945
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:80
帖 子:1545
专家分:3298
注 册:2012-7-6
收藏
得分:0 
楼主,你屏蔽掉隐私数据后,把两个表文件上传上来,好让大家帮你看看什么情况。里面的数据最好是包含各种情况的。
2014-05-22 08:40
taifu945
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:80
帖 子:1545
专家分:3298
注 册:2012-7-6
收藏
得分:0 
在数据表上传之前,我先建议楼主检查一下数据源字段中有没有.NULL.值的,这些数据源字段是:jq_1.amt、jq_1.mat、jq_1.lab、jq_1.burden、jq_1.sub。为什么要检查呢?因为如果这些字段中有.NULL.值,那么做了加法后,整个表达式的值也是.NULL.。而你准备赋值的字段若是设置为不能接收.NULL.值,就会发生错误。比如:bqll=jqrwd.bqll+jq_1.amt这句,如果jp_1.amt字段中含有.NULL.值,那么它和jqrwd.bqll相加的结果必然是.NULL.(不管jqrwd.bqll是什么值),那么你若设置jqrwd.bqll字段为“NOT NULL”,即不接收.NULL.值,就会发生此种错误。


[ 本帖最后由 taifu945 于 2014-5-22 09:11 编辑 ]
2014-05-22 09:10
liuxingang28
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:山东济南
等 级:贵宾
威 望:47
帖 子:658
专家分:2180
注 册:2014-2-7
收藏
得分:5 
解决方法并不复杂,以 update table1 set field1 = value 来说明:
1. 系统提示字段不能为 NULL 值,说明 value 为 null。
   注意:若 value 是一个表达式,若表达式中任意一个数据项含有 nul,则表达式的结果即为 null
2. 在 UPDATE 语句中使用 NVL()函数将 null 转为其他值,如:空字符串、数值0、.f.等。
   比如:update table1 set field1 = NVL(值,'')    && 假设 field1 为字符型

泉城飞狐
2014-05-22 10:16
快速回复:字段不能为 null 值 解决方案 ?
数据加载中...
 
   



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

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