标题:VFP自动修改文本字符长度
只看楼主
hyz00001
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:168
专家分:137
注 册:2012-10-5
结帖率:100%
已结贴  问题点数:20 回复次数:5 
VFP自动修改文本字符长度
从金蝶K3数据库中引出的VFP3.0表格中每个字符串都是254个字符,这是用不上的,造成资源浪费。

希望通过一段程序或者命令来实现让VFP表格自动修改字符型字段的长度为最佳适配项。

通过下面命令可以知道现有数据表某字段的最长字符数。
SELECT MAX(LEN(ALLTRIM(物料名称))),MAX(LEN(ALLTRIM(事务类型))) FROM ckyw

通过另外一条命令可以修改文本字符的长度。
 Alter Table ckyw Alter 物料名称 c(80)

因为数据表较多,希望有一个语句可以实现自动将数据表按照现有使用的最长字符数来修改表格式。




2016-12-24 00:12
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:4 
自己写一段代码修改

坚守VFP最后的阵地
2016-12-24 01:01
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:396
帖 子:11713
专家分:43267
注 册:2006-5-13
得分:4 
当一个语句解决不了问题时,就应该用一段代码来解决,片面追求语句的短少精练会不会是要求过高。

活到老,学到老! http://www. E-mail:hu-jj@
2016-12-24 06:50
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:4 
CALCULATE MAX(LEN(ALLTRIM(物料名称))) TO m长度
ExecScript([Alter Table ckyw Alter 物料名称 c(] + TRANSFORM(m长度) + [)])
2016-12-24 07:01
厨师王德榜
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:183
帖 子:942
专家分:4724
注 册:2013-2-16
得分:4 
设置内外两层循环,内循环:
for i=1 to  FCOUNT()
   if TYPE(FIELD(i))="C"
    fld=FIELD(i)
    SELECT MAX(LEN(ALLTRIM(&fld))) as bfldLenth  FROM ckyw into cursor tmp1  
    Alter Table ckyw Alter &fld c(bfldLenth)
    use in tmp1
   endif
endfor
外循环:用Adir()获取某文件夹下所有文件名到数组,再对数组循环。
2016-12-26 08:51
红星二锅头
Rank: 8Rank: 8
等 级:贵宾
威 望:46
帖 子:491
专家分:754
注 册:2016-8-25
得分:4 
Select Cast(MyField As Char(10)) From MyTable1 Into Table MyTable2  && 假设需要限制 MyField 字段的长度为 10

团队红星二锅头,队长王猛,领队李冲,顾问杨伟,副队张挺,外联马彪,内勤韩秀,人事顾闯,财务赵魁,后勤周强
2016-12-26 09:32



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-472846-1-1.html




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

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