回 帖 发 新 帖 刷新版面

主题:如何利用表结构文件创建新表

记得在fox 2.0时代,我们可以用一个表(表A)来存储一些字段名,而另外的表的字段就是用该表A中的字段来创建。那个命令是怎么写的?在VF6以上还有么?记得命令中好像有个什么structure,但是我在Vf6.中没搜索到。
如何将现有表的字段取出来然后存入另一个表中作为一条记录?

请大侠支招,谢谢!

回复列表 (共2个回复)

沙发

copy structure extended 命令


创建新表,它的字段包含当前选定表的结构信息。

语法

COPY STRUCTURE EXTENDED TO FileName
[DATABASE DatabaseName [NAME LongTableName]]
[FIELDS FieldList]

参数

FileName

指定要创建的新表。

DATABASE DatabaseName

指定要添加新表的数据库。

NAME LongTableName

指定新表的长名称。长名称最多可以包含 128 个字符并且可以在数据库中使用短文件名的地方使用它。

FIELDS FieldList

指定在新表的记录中只包含由 FieldList 指定的字段。若省略 FIELDSFieldList,则所有字段在新表中都有一个记录。

说明

当前选定表内每个字段的信息被复制到新表的一条记录中。新表的结构在格式上固定,由 16 个字段组成。

下表列出了这 16 个字段的名称和内容。

字段 字段类型 内容 
FIELD_NAME 字符型 当前选定表的字段名 
FIELD_TYPE 字符型 字段类型:

C =字符型

Y = 货币型

N = 数值型

F = 浮点型

I = 整型

B =双精度型

D = 日期型

T =日期时间型

L = 逻辑值

M = 备注型

G =通用型
 
FIELD_LEN 数值型 字段宽度 
FIELD_DEC 数值型 数值字段中的小数位数 
FIELD_NULL 逻辑型 字段支持 null 值 
FIELD_NOCP 逻辑型 不允许代码页转换(只用于字符型字段和备注型字段) 
FIELD_DEFA 备注型 字段默认值 
FIELD_RULE 备注型 字段有效性规则 
FIELD_ERR 备注型 字段有效性文本 
TABLE_RULE 备注型 表有效性规则 
TABLE_ERR 备注型 表有效性文本 
TABLE_NAME 字符型 长表名(只用于第一个记录) 
INS_TRIG 备注型 插入触发器表达式(只有第一个记录) 
UPD_TRIG 备注型 更新触发器表达式(只有第一个记录) 
DEL_TRIG 备注型 删除触发器表达式(只有第一个记录) 
TABLE_CMT 备注型 表注释(只有第一个记录) 


可对此新表进行修改,然后使用 CREATE FROM 创建一个不同结构的新表。COPYSTRUCTURE 和 CREATE FROM 可以用来以编程方式更改表的结构。

在以前版本的 Visual FoxPro 、FoxPro for Windows 和 FoxPro for MS-DOS 中,FIELD_NAME 字段的宽度为 10。为了将 CREATE FROM 用于一个在 Visual FoxPro 5.0或以前版本使用 COPY STRUCTURE EXTENDED 创建的表,必须将 FIELD_NAME 字段的宽度改为 10 个字符。注意,在 Visual FoxPro 3.0 以及以前版本中不支持有些字段。


create from 命令


从 COPY STRUCTURE EXTENDED 文件创建一个表。

语法

CREATE

[FileName1 [DATABASE DatabaseName [NAME LongTableName]]]
FROM [FileName2]

参数描述

FileName1

要创建的新表的名称。

DATABASE DatabaseName

新表将被加入到本处指定的数据库中。

NAME LongTableName

指定新表在数据库中的长表名,最多可包含 128 个字符。若不指定,则在数据库中使用 FileName1 作为表名。

FileName2

FileName2 是一张表,其中记录 FileName1 中各个字段的信息。FileName2 可由 COPY STRUCTURE 命令创建,或由手工生成。

说明

CREATE 假设由 FileName2 指定的表已经用 COPY STRUCTURE EXTENDED 或用人工方式创建了。利用 FileName2 中说明的结构创建新表 FileName1。新创建的表成为活动表。

如果命令中没有包括 FileName1 或 FileName2,或者两个都不包括,则出现一个对话框,可在其中指定要创建的文件或 FROM 文件,或两者都指定。

请注意 FileName2 中的所有记录,包括那些作了删除标记的记录,都用来创建FileName1。

板凳

SELECT 表
COPY STRUCTURE EXTENDED TO Tem1
USE Tem1
CREATE 要创建的表名 FROM Tem1

我来回复

您尚未登录,请登录后再回复。点此登录或注册