欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

foxpro表可以复制,但数库表的有效性规则之类该如何复制

更新时间: 2014-01-05 02:27:03 责任编辑: Author_N1

 

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
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:27:03
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/9923/
本文WWW.DOC100.NET DOC100.NET版权所有。