从现有表格中制作空白副本

时间:2016-12-01 00:49:15

标签: visual-foxpro foxpro

如何使用FoxPro中现有表格中的所有结构/架构制作副本?

copy to

没有工作

2 个答案:

答案 0 :(得分:3)

VFP中没有单个命令可以复制现有表可能具有的所有内容。您必须定义您的要求以及现有表格的表现。

例如,对于包含数据的简单复制,您可以使用:

copy to NewTableName with cdx [Database dbName [Name tableNameInNewDb]]

这将复制结构以及索引和现有数据。但是,它不会复制其他数据库级属性(如果有)。您需要将cursorgetprop()\ cursorsetprop(),dbgetprop()\ dbsetprop()用于其他人。

执行完整复制的一种方法是首先使用(home()+'tools \ gendbc \ gendbc.prg')获取数据库的程序化版本和表创建,然后编辑新表的生成代码(还要附加旧代码。)

希望您最初向我们解释说“复制到不起作用”是什么意思。

PS:我注意到你的问题标题是“制作空白副本”。然后你可能想要使用:

copy to NewTableName with cdx for .F.

它会复制结构和索引,但不会复制数据。其他缺点仍然适用。如果您不需要索引,那么更简单的方法是:

select * from sourceTable where .F. into table targetTable

编辑:正如LAK指出的那样,在大型桌子上使用WHILE而不是FOR会更快:

copy to NewTableName with cdx while .F.

答案 1 :(得分:2)

它的

copy structure to newfile

或者,

copy to newfile for .f.