| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 664 人关注过本帖
标题:从SQL2000数据到VFP9的问题?
只看楼主 加入收藏
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3146
专家分:8408
注 册:2015-3-25
结帖率:98.98%
收藏
已结贴  问题点数:10 回复次数:9 
从SQL2000数据到VFP9的问题?
我SQL2000的字符字段是 Varchar(16),但不是个个都16位的。在SQL2000上,确实是实际多长,就是多长。
我曾经在SQL2000中读长度,确实是对的,但下载到VF9后,就个个都是长度16位了。。
sql_str="select len(bh) as bh_len,bh,xm from abc"
sqlexec(nhandle,sql_str,"abc1")
取回来的数据,在字段BH_LEN中,确实是实际的长度,但在VFP中,BH的字段,都是长度16的?
SELECT ABC1
?LEN(BH)
===16
如:
BH_LEN          BH                 XM     
5               12345              12345
?LEN(BH)=16的。。
为什么?怎么解决这个问题?
难道取回来后,字符字段的,个个都要RTRIM()后才使用?
2015-07-20 13:49
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10567
专家分:43011
注 册:2014-5-20
收藏
得分:4 
VARTYPE(BH)是“C”了
2015-07-20 13:56
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3146
专家分:8408
注 册:2015-3-25
收藏
得分:0 
好像是C,要晚上才知道。SQL2000上是VARCHAR(16)
读到VFP9上是固定长度16,
2015-07-20 16:13
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3146
专家分:8408
注 册:2015-3-25
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册
2015-07-20 16:36
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3146
专家分:8408
注 册:2015-3-25
收藏
得分:0 
sql_str="create table test(bh varchar(16),xm varchar(20))"
?SQLEXEC(nhandle,sql_str)
FOR i=1000 TO 1050
str_bh='A'+ALLTRIM(STR(i))
str_xm='B'+ALLTRIM(STR(I))
ins=SQLEXEC(nhandle,'insert into test(bh,xm) values(?str_bh,?str_xm)')
endfor
res=SQLEXEC(nhandle,'select LEN(bh) as bh_len,bh,xm from test','test')
brow
2015-07-20 16:36
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3146
专家分:8408
注 册:2015-3-25
收藏
得分:0 
看到了没,我刚才在上班的电脑测试的。
2015-07-20 16:37
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3146
专家分:8408
注 册:2015-3-25
收藏
得分:0 
UP....
2015-07-21 11:28
taifu945
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:80
帖 子:1545
专家分:3298
注 册:2012-7-6
收藏
得分:6 
因为vfp9虽然增加了V型字段,但从其它地方导入的规则却没重新写过,所以都是旧式的C型。我是这么做的,只要两步:1、把字段类型改为V型;2、用REPLACE ALL 字段名 WITH ALLTRIM(字段名)的命令去掉所有记录后面的多余空格。如果有多个字段,且你经常要从外部数据库导入数据的话,可以自己动手编一段通用代码。
2015-07-21 22:42
liujc73
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2012-6-26
收藏
得分:0 
?LEN(ALLT(BH))试试吧
2015-07-30 13:17
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3146
专家分:8408
注 册:2015-3-25
收藏
得分:0 
LEN(ALLT(BH)),肯定是实际长度,我是说SQL2000上的长度是实际长度,但下到VFP表上,就都变为最大长度了。不知道,有没办法,下载到VFP去,也是实际长度,这样在使用的时候,就不需要处理了。
要不,都要处理,才能使用。
2015-07-30 13:30
快速回复:从SQL2000数据到VFP9的问题?
数据加载中...
 
   



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

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