Note | 该命令在头文件中定义,将由 X# 预处理器预处理为函数调用。如果禁用标准头文件 (-nostddefs),该命令将不可用。如果告诉编译器使用不同的标准头文件(-stddef ),则此命令也可能不可用。 |
将数据库文件结构中的字段定义作为数据复制到结构扩展文件中。
COPY STRUCTURE EXTENDED TO <xcTargetFile>
TO <xcTargetFile> | 目标结构扩展数据库文件的名称,包括可选的驱动器、目录和扩展名。有关文件搜索和创建规则,请参阅 SetDefault() 和 SetPath()。 数据库文件的默认扩展名由 RDD 决定。 |
如果 <xcTargetFile> 不存在,将创建该文件。 如果存在,该命令将尝试以独占模式打开文件,如果成功,文件将被覆盖,不会发出警告或出错。 如果由于其他进程正在使用该文件等原因而拒绝访问,NetErr() 将被设置为 TRUE。 |
COPY STRUCTURE EXTENDED(复制结构扩展)创建一个数据库文件,其内容是当前数据库文件的结构,每个字段的定义都有一条记录。
结构扩展数据库文件的结构如下:
字段名 | 类型 长度 小数 |
Field_Name | Character 10 |
Field_Type | Character 1 |
Field_Len | Numeric 3 0 |
Field_Dec | Numeric 3 0 |
通过在应用程序中使用 COPY STRUCTURE EXTENDED,可以以编程方式创建或修改数据库文件的结构。 要从结构扩展文件创建一个新的数据库文件,请使用 CREATE FROM。 如果需要一个空的结构扩展文件,请使用 CREATE。
字符字段长度大于 255: 字段长度大于 255 时,表示为 Field_Dec 和 Field_Len 字段的组合。 执行 COPY STRUCTURE EXTENDED 后,可以使用以下公式确定任何字符字段的长度:
nFieldLen := IIf((Field_Type = "C" .AND. ;
Field_Dec != 0), Field_Dec * 256 + ;
Field_Len, Field_Len)
本例从 SALES.DBF 创建 STRUC.DBF 作为结构扩展文件,然后列出 STRUC.DBF 的内容,以说明字段定义的典型布局:
USE sales NEW
COPY STRUCTURE EXTENDED TO struc
USE struc NEW
LIST Field_Name, Field_Type, Field_Len, Field_Dec
// 结果:
1 BRANCH C 3 0
2 SALESMAN C 4 0
3 CUSTOMER C 4 0
4 PRODUCT C 25 0
5 AMOUNT N 8 2
6 NOTES C 0 125
// 字段长度为 32 000 个字符
XSharp.RT.DLL
COPY STRUCTURE, CREATE, CREATE FROM, FieldName(), DbCopyXStruct(), SetDefault(), SetPath(), Type()