如何在应用程序中修改FOXPRO数据表

如何在应用程序中修改FOXPRO数据表,第1张

如何在应用程序中修改FOXPRO数据表,第2张

修改FOXPRO的数据表结构,常用的是修改结构命令。这种方法虽然方便,但必须在人机对话中实现。如果你的程序已经交付给很多用户,要求用户使用修改结构命令修改数据表结构,必然会带来很多麻烦。是否可以通过执行预编程的程序来扩展字段宽度?笔者最近做了一个尝试,其程序思路是:

1.使用AFIELDS()函数获取要修改的数据表的结构信息,并将信息存储在STR_FIL数组中。AFIELDS()函数的语法:AFIELDS(ArrayName),ArrayName是放置表结构信息的数组名(本例中命名为STR_FIL)。该数组为每个字段创建一行数据,每列中存储的信息如下:

号字段信息数据类型
1字段名称字符类型
2字段类型字符类型
3字段宽度值类型
4小数点位置值类型
5允许/[k0/]值逻辑类型
6字段有效性标准字符类型[/br


2。根据需要修改STR_FIL数组内容(在本例中,修改字段宽度)。

3.使用CREATE CURSOR命令根据STR_FIL数组的内容创建一个临时表结构。

4.将原始表数据添加到临时表中。

5.使用“复制到”命令用原始表覆盖临时表。

下面是修改字段宽度的原始代码:

*参数:SOU_FILE(修改的数据表文件名),字符类型
*参数:FIE_NAME(要修改的字段名称),字符类型
*参数:FIE_(修改的字段宽度),数值类型
parasou _ file,fie FIEL_SUM,N,Str _ tmp
如果使用(" &sou _ file")
&&打开要修改的数据表
SELE & SOU _ FILE
else
SELE
&&获取表格结构并存入STR_FIL数组
FIEL_SUM=FCOUNT() &&计算表格字段个数
N = 1
DO WHILE N $ # @ 60;=FIEL_SUM
&&查找要修改的字段名称
if all (str _ fil (n,1))= FIE _ name
& &如果是要修改的字段名称
IF STR_FIL(N,3)=FIE_WID
&&确定字段宽度是否相同
RETURN
& & Same RETURN
ELSE
& &否则修改表结构
3)=FIE_WID
&&确定字段长度
退出&&退出循环
如果N= FIEL_SUM &&如果循环结束
等待未修改的字段,按任意键返回……
“wind”

*根据STR_FIL数组的内容创建临时表结构
SELE 0
*创建临时表str _ tmp
根据STR_FIL数组中指定的字段名
类型和宽度从str _ fil数组创建游标str _ tmp

*将原始数据表添加到临时表STR _ TMP
sele 0
appe from & sou _ file
copy to & sou _ file & & copy新的原始数据表
RETURN

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 如何在应用程序中修改FOXPRO数据表

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情