搜索
编程论坛
→
数据库技术
→
『 VFP论坛 』
→ 为什么运行结果不一样.vfp6 与 vfp9
标题:
为什么运行结果不一样.vfp6 与 vfp9
只看楼主
cy36245253
等 级:
新手上路
帖 子:6
专家分:0
注 册:2013-7-19
结帖率:
100%
楼主
已结贴
√
问题点数:20 回复次数:12
为什么运行结果不一样.vfp6 与 vfp9
sele * from jc where alltrim(byzx)+alltrim(bhxh) in (sele ALLTRIM(hc) from cx) 为什么同样的语句在vfp6与vfp9运行出来的结果不一样.vfp6正确.前提cx数据库中有空记录.请高手解答一下.谢 问题出在哪儿,同样的语句,vfp6与vfp9中运行结果竟然不
表.zip
(5.29 KB)
一样.
搜索更多相关主题的帖子:
记录
where
数据库
2014-05-06 11:13
cy36245253
等 级:
新手上路
帖 子:6
专家分:0
注 册:2013-7-19
第
2
楼
得分:0
附件中表xjc改为cx
2014-05-06 11:20
tlliqi
等 级:
贵宾
威 望:
204
帖 子:15453
专家分:65956
注 册:2006-4-27
第
3
楼
得分:5
你xjc中没hc列 你怎么运行你的语句?
2014-05-06 12:01
tlliqi
等 级:
贵宾
威 望:
204
帖 子:15453
专家分:65956
注 册:2006-4-27
第
4
楼
得分:0
你xjc中只有一个记录
2014-05-06 12:02
cy36245253
等 级:
新手上路
帖 子:6
专家分:0
注 册:2013-7-19
第
5
楼
得分:0
不好意思.上传的数据库有点问题,现在重新上传数据库,请高手指点一下.研究vfp多年,这个问题真没找到答案.
表.rar
(5.11 KB)
2014-05-06 14:32
dzy123
等 级:
蝙蝠侠
威 望:
5
帖 子:379
专家分:820
注 册:2013-4-18
第
6
楼
得分:5
sele * from jc where alltrim(byzx)+alltrim(bhxh) in (sele ALLTRIM(Hc) from cx where not EMPTY(ALLTRIM(hc)))
vfp 9 中这样写吧
2014-05-06 17:03
tlliqi
等 级:
贵宾
威 望:
204
帖 子:15453
专家分:65956
注 册:2006-4-27
第
7
楼
得分:0
sele * from jc where alltrim(byzx)+alltrim(bhxh) in (sele hc from cx)
2014-05-06 17:13
liuxingang28
来 自:山东济南
等 级:
贵宾
威 望:
47
帖 子:649
专家分:2156
注 册:2014-2-7
第
8
楼
得分:5
ewewewewewew
泉城飞狐
2014-05-06 20:42
liuxingang28
来 自:山东济南
等 级:
贵宾
威 望:
47
帖 子:649
专家分:2156
注 册:2014-2-7
第
9
楼
得分:0
改为:sele * from jc where alltrim(byzx)+alltrim(bhxh) in (sele hc from cx) 即可在 VFP 9 下正确执行。
该问题我已经在多个场合解释过,现在我再解释一遍。原代码是
sele * from jc where alltrim(byzx)+alltrim(bhxh) in (sele ALLTRIM(hc) from cx)
,其中有问题的部分是后面的
sele ALLTRIM(hc)
。
select 后面的字段是表达式时,一定要留足字段长度,因为
返回结果的字段长度是以第一条返回记录的结果来定义的
。cx.dbf 表共有 3 条记录,其中有 2 条是空记录,这样,返回查询结果时,若首条记录正好是空白记录,则因为 ALLTRIM(hc) 返回空字符串,则返回结果的字段长度被定义为 0。所以后续的“403318065”也无法存储。这也就不难理解在 VFP 9.0 下执行原代码返回的查询结果是 jc.dbf 表的所有记录。我一般使用 CAST()函数对表达式的数据类型进行二次定义来避免出现该问题,如:sele * from jc where alltrim(byzx)+alltrim(bhxh) in (select cast(ALLTRIM(hc) as C(9)) from cx)
收到的鲜花
tlliqi
于
2014-05-07 07:29
送鲜花
10朵 附言:有道理
泉城飞狐
2014-05-06 21:22
cy36245253
等 级:
新手上路
帖 子:6
专家分:0
注 册:2013-7-19
第
10
楼
得分:0
再追问一下,我就知道到同样的语句,为什么vfp6与vfp9执行的查询结果不一样.是不是因为vfp6与vfp9工作机理不一致.纳闷在这儿.
2014-05-07 08:53
13
1/2页
1
2
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-431070-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.121555 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved