FOXPRO表可以复制,但数库表的有效性规则之类该怎么复制
DBSETPROP('OrdItems.Price', 'Field', 'Comment', ;
'Current retail price per unit')
DBGETPROP("customer.cust_id", "Field", "Comment")
加个FREE TABLE\ADD TABLE
这四个命令搞个自定义程序,加个循环可以实现将两表有关有效性规则\注释\默认值等含在数据库里表的一套内容复制给一张已经复制的表,但目录我也只知道这种方法,本来就两张表,含在同一数据库里,复制真的要这么难吗,请高手指点点,如果将一张表复制到另一数据库以及将数据库和表当做集合一起实现复制的方法有可能也指点指点,目录本人实现的方法,仅限于WINRAR的压缩好,复制,再解压! 数据库 表 注释 有效性规则 复制
[解决办法]
转帖:
?My_Copy_Dbc_Dbf("d:\test\Table1.dbf","d:\test\Table2.dbf","d:\test\Data2.dbc")
*----------------------------------------------------------------------------------------------------------------
*--函数:My_Copy_Dbc_Dbf(tcsTableName,tcdTableName,tcdDatabaseName)
*--参数:tcsTableName为源表的带路径全名,tcdTableName为目标表的带路径全名,tcdDatabaseName为目标数据库的带路径全名。
*--功能:复制一个数据库中的表结构到(另一个)数据库中,包含表字段属性等。
*--作者:l021126
*----------------------------------------------------------------------------------------------------------------
Function My_Copy_Dbc_Dbf
Parameters tcsTableName,tcdTableName,tcdDatabaseName
If Parameters()<2 Or Empty(tcsTableName) Or Empty(tcdTableName)
Return .F.
Endif
Close Databases All
sTableName=Juststem(tcsTableName)
Use (tcsTableName)
sDataBaseName=CursorGetProp("Database")&&返回数据库名。如果表是自由表,返回空串
If Empty(sDataBaseName)Or Empty(tcdDatabaseName)&&源表为自由表或者省略目标数据库,则复制成自由表。
Copy Structure To (tcdTableName) Cdx
Close Databases All
Return .T.
Endif
**创建一个与当前选定表结构相同的新的、空白表,注意路径,可选字段
Copy Structure To (tcdTableName) Cdx Database (tcdDatabaseName)
dTableName=Juststem(tcdTableName)
Select 0
Use (tcdTableName) Exclusive
** 获取指定工作区中的表结构信息并存贮到一个数组
gnFieldcount = Afields(gaMyArray,(dTableName))
For nCount = 1 To gnFieldcount
cfield1=sTableName+'.'+gaMyArray(nCount,1)
cfield2=dTableName+'.'+gaMyArray(nCount,1)
Set Database To (sDataBaseName)
cCaption=DBGetProp(cfield1,"FIELD","Caption")&&取标题
cFormat=DBGetProp(cfield1,"FIELD","Format")&&取显示格式
cInputMask=DBGetProp(cfield1,"FIELD","InputMask")&&取输入格式
cDefaultValue=DBGetProp(cfield1,"FIELD","DefaultValue")&&取默认值
**这里取了4个属性,还可取更多,只读属性不能写入不必取
Set Database To (tcdDatabaseName)
If !Empty(cCaption)
DBSetProp(cfield2,"FIELD","Caption",cCaption)
Endif
If !Empty(cFormat)
DBSetProp(cfield2,"FIELD","Format",cFormat)
Endif
If !Empty(cInputMask)
DBSetProp(cfield2,"FIELD","InputMask",cInputMask)
Endif
If !Empty(cDefaultValue)
Try
DBSetProp(cfield2,"FIELD","DefaultValue",cDefaultValue)
Catch
Endtry
Endif
Endfor
Close Databases All
Return .T.
Endfunc