| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1973 人关注过本帖
标题:我也有个问题,请各位高手指点!谢谢!
只看楼主 加入收藏
wzxc
Rank: 9Rank: 9Rank: 9
来 自:齐鲁大地
等 级:贵宾
威 望:39
帖 子:985
专家分:1296
注 册:2006-4-25
收藏
得分:2 
连同数据库文件一同复制过去不就得了!

认真看书学习,弄通Fox主义。
2010-04-11 20:40
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:1 
回复 10楼 茵梦湖
如果它的数据库是独占打开的,虽然表未打开,这种方法也还是不行的!

★★★★★为人民服务★★★★★
2010-04-11 20:44
panpende
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:528
专家分:963
注 册:2009-4-27
收藏
得分:1 
qingfameng你好,你说:
现在我希望的是:如何把 copy file 拷贝过来的表,去除那个链接提示。append from .. 虽然第一步打开的是一个预先设置好的表,这点咱们都明白,但是第二步还是需要打开那个待传输的表的,才能开始传输据。

我特地做了一个数据库 SJK1.dbc ,内含表 B1.dbf ,B1.dbf 添加了几条记录。又做了一个表头  B2.dbf ,结构和B1.dbf 一样。
进入FOXPRO 8.0  ,输入以下命令:
USE B2
APPE FROM B1
效果是: B2.dbf 把 B1.dbf 的记录全部传过来了,并且B1.dbf 没有打开,SJK1.dbc 也不要先行打开。你说的但是第二步....,是不需要的。
sele * from .... 命令会同时打开源表(如果源表没有打开的话),所以要加一句  use in 你的源表。

2010-04-12 08:14
panpende
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:528
专家分:963
注 册:2009-4-27
收藏
得分:1 
此方法在其他用户已经
OPEN DATABASE D:\BDS\SJK1.dbc EXCLUSIVE

或者
OPEN DATABASE D:\BDS\SJK1.dbc SHARED

的情况下,即数据库被其他用户打开时,不打开B1.dbf ,B2.dbf不能访问 B1.dbf 。

2010-04-12 08:33
茵梦湖
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:31
帖 子:545
专家分:2180
注 册:2009-4-25
收藏
得分:3 
以下是引用cnfarer在2010-4-11 20:44:22的发言:

如果它的数据库是独占打开的,虽然表未打开,这种方法也还是不行的!

我测试了一下,无论数据库是否打开,或是否独占打开,我10楼代码都是可行的(多用户下未作测试)~~~

数据库名: testdata
表名: customer


数据库未打开下的测试代码如下:

clos data
lsdbc =HOME(2) + 'Data\testdata'
sele * from "&lsdbc!customer" into tabl c:\tmp
  use in customer
brow
? used("customer")
? dbc()
retu


数据库独占打开下的测试代码如下:

clos data
lsdbc =HOME(2) + 'Data\testdata'
OPEN DATABASE (lsdbc) excl  && 独占打开
sele * from customer into tabl c:\tmp
  use in customer
brow
? used("customer")
? dbc()  
retu

 

[ 本帖最后由 茵梦湖 于 2010-4-12 11:40 编辑 ]
2010-04-12 11:35
qingfameng
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:35
帖 子:964
专家分:3019
注 册:2010-2-6
收藏
得分:0 
谢谢!朋友:cnfarer,hu0jj,panpenda,liuhaijun,茵梦湖,wzxc 六位朋友!以及 eyoung_fox 朋友!
你们提供了很大的帮助,给予了很大的提醒,使问题解决!方法如下:
1、本机创建一个数据库,名称与待拷贝的表,所关联的数据库完全一样。随意放在一个路径下。库名:sjk
2、本机创建一个表,名称与待拷贝的表结构完全一样。把它放在相对的路径下。(这是关键)表名:sjb
3、相对路径是什么?比如:在待拷贝的机子上,数据库在 f:\data\ 之中,待拷贝的表在 f:\data\sj\之中,
   那么,相对路径就是:sj\ (相对位置). 将创建的表加入到创建的数据库中。(假如处于相同路径更好)。
4、在本机上,我在 d:\dat\下创建数据库 sjk,在他下面创建路径 sj\ 以及表 sjb.
   用 close all 之后,copy file 命令直接拷贝那台机子中的 f:\data\sjb\中的待拷贝表,
   到达本机的 d:\dat\sj\下。 可以直接打开使用了。
                                                    谢谢各位!!谢谢!

   
   
  


   


2010-04-12 16:20
Tiger5392
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:88
帖 子:2775
专家分:2237
注 册:2006-5-17
收藏
得分:0 
数据库很好,可是需要知道很多规则。假如不复杂的话,建议采用自由表。一点浅见,仅供参考,呵呵。

感言:学以致用。 博客:http://www./blog/user14/65009/index.shtml email:Tiger5392@
2010-04-12 20:48
panpende
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:528
专家分:963
注 册:2009-4-27
收藏
得分:0 
昨晚我也想到了这个方法,楼主已经解决了。模仿一个链接关系,使得COPY FILE ....过来的文件,在打开时,能够链接上,可以避免出错提示。
2010-04-17 08:48
茵梦湖
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:31
帖 子:545
专家分:2180
注 册:2009-4-25
收藏
得分:0 
以下是引用qingfameng在2010-4-12 16:20:35的发言:

谢谢!朋友:cnfarer,hu0jj,panpenda,liuhaijun,茵梦湖,wzxc 六位朋友!以及 eyoung_fox 朋友!
你们提供了很大的帮助,给予了很大的提醒,使问题解决!方法如下:
1、本机创建一个数据库,名称与待拷贝的表,所关联的数据库完全一样。随意放在一个路径下。库名:sjk
2、本机创建一个表,名称与待拷贝的表结构完全一样。把它放在相对的路径下。(这是关键)表名:sjb
3、相对路径是什么?比如:在待拷贝的机子上,数据库在 f:\data\ 之中,待拷贝的表在 f:\data\sj\之中,
   那么,相对路径就是:sj\ (相对位置). 将创建的表加入到创建的数据库中。(假如处于相同路径更好)。
4、在本机上,我在 d:\dat\下创建数据库 sjk,在他下面创建路径 sj\ 以及表 sjb.
   用 close all 之后,copy file 命令直接拷贝那台机子中的 f:\data\sjb\中的待拷贝表,
   到达本机的 d:\dat\sj\下。 可以直接打开使用了。
                                                    谢谢各位!!谢谢!

   
   
  


   

太烦杂了吧?  建议直接用: free table 表名~

示例:

copy file 源数据库表名.dbf to 拷贝表名.dbf
free tabl 拷贝表名
use 拷贝表名
brow



2010-05-11 21:02
jj52076110
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2010-3-5
收藏
得分:0 
有用
2010-05-12 10:44
快速回复:我也有个问题,请各位高手指点!谢谢!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.031952 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved