|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
数据库技术
→
『 VFP论坛 』
→ 为什么运行结果不一样.vfp6 与 vfp9
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
912
人关注过本帖
标题:
为什么运行结果不一样.vfp6 与 vfp9
只看楼主
加入收藏
cy36245253
等 级:
新手上路
帖 子:6
专家分:0
注 册:2013-7-19
结帖率:
100%
楼主
收藏
已结贴
√
问题点数:20 回复次数:13
为什么运行结果不一样.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
帖 子:658
专家分:2180
注 册:2014-2-7
第
8
楼
收藏
得分:5
ewewewewewew
泉城飞狐
2014-05-06 20:42
举报帖子
使用道具
赠送鲜花
liuxingang28
来 自:山东济南
等 级:
贵宾
威 望:
47
帖 子:658
专家分:2180
注 册: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
举报帖子
使用道具
赠送鲜花
14
1/2页
1
2
快速回复:
为什么运行结果不一样.vfp6 与 vfp9
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.018033 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved