Show/Hide Toolbars

XSharp

Navigation: X# 文档 > X# 语言参考 > 命令和语句 > 数据库

COPY STRUCTURE EXTENDED 命令

Scroll Prev Top Next More
Note该命令在头文件中定义,将由 X# 预处理器预处理为函数调用。如果禁用标准头文件 (-nostddefs),该命令将不可用。如果告诉编译器使用不同的标准头文件(-stddef ),则此命令也可能不可用。

用途

将数据库文件结构中的字段定义作为数据复制到结构扩展文件中。

语法

COPY STRUCTURE EXTENDED TO <xcTargetFile>

参数

TO <xcTargetFile>目标结构扩展数据库文件的名称,包括可选的驱动器、目录和扩展名。有关文件搜索和创建规则,请参阅 SetDefault() 和 SetPath()。 数据库文件的默认扩展名由 RDD 决定。
 
如果 <xcTargetFile> 不存在,将创建该文件。 如果存在,该命令将尝试以独占模式打开文件,如果成功,文件将被覆盖,不会发出警告或出错。 如果由于其他进程正在使用该文件等原因而拒绝访问,NetErr() 将被设置为 TRUE。

描述

COPY STRUCTURE EXTENDED(复制结构扩展)创建一个数据库文件,其内容是当前数据库文件的结构,每个字段的定义都有一条记录。

结构扩展数据库文件的结构如下:

 

字段名类型        长度        小数        
Field_NameCharacter        10                
Field_TypeCharacter        1                
Field_LenNumeric        3                0
Field_DecNumeric        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()