关于VB打开DBF表的问题!

JxWilson 2001-07-24 10:42:55
请问高手:
我在VB环境下连续打开2000个DBF表,一个一个的导入到SQL SERVER中,然后,
再把那2000个表拷贝到别的目录下时会出现‘文件访问出错,或拒绝访问等错误’,
但是,只要等一会儿,那个出错的文件又能拷贝了,基本上每个文件都要等50秒到2分钟
左右就能拷贝!请问这是什么原因?



...全文
104 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
dtxipi 2001-07-25
  • 打赏
  • 举报
回复
你是用的同一个CONNECTION对象,来打开你的DBF表的吧!
而且你是用的RECORDSET对象来执行导出的吧!
我以前也碰到这样的情况,我想先KILL 掉旧文件,结果提示出错!
后来,我在执行对文件的操作前,先把CONNECTION对象CLOSE,执行文件操作的命令,包括COPYFILE都可以执行了!
我的经验,希望你可以参考一下!
superjs 2001-07-24
  • 打赏
  • 举报
回复
文件还未关闭!或者是系统的缓存还未更新!
JxWilson 2001-07-24
  • 打赏
  • 举报
回复
dtxipi(精灵古怪):
不是关闭,是拷贝300多个表,也就是说:通过CLOSE ,在一段时间内,这个时间可能很
短,我能通过程序拷贝那未被使用的文件(即真正的CLOSE掉的文件).
JxWilson 2001-07-24
  • 打赏
  • 举报
回复
dtxipi(精灵古怪):

我当然CLOSE掉了。
我最多能一次性关闭300多个表,而盛下的只能等它自己给关了后才能拷贝!!!
JxWilson 2001-07-24
  • 打赏
  • 举报
回复
云中漫步:
我用了三种方式打开DBF表:

一是使用你所讲的方法
二是使用VB本身的控件
三是使用VB Jet方式打开

但均未果,我自己认为,要么是我使用的方法不对,要么是VB本身的错误,要么是计算机在关闭DBF表时具有缓存性




dtxipi 2001-07-24
  • 打赏
  • 举报
回复
你可以把CONNECTION对象CLOSE
就可以了哦!!!!
joo 2001-07-24
  • 打赏
  • 举报
回复
例如:怎样在程序中用代码打开c:\joo\jz.dbf,不用DSN,直接用代码。
偶是这样写的哪里不对请指教。。。
Public cn As New ADODB.Connection
Public rs As New ADODB.Recordset
Public cmd As New ADODB.Command
cn.ConnectionString = "Provider=MSDASQL.1;Persist Security Info=False;Extended Properties='Driver={Microsoft FoxPro VFP Driver (*.dbf)};UID=;SourceDB=c:\joo\jz.dbf;SourceType=DBF;Exclusive=No;BackgroundFetch=Yes;Collate=Machine;Null=Yes;Deleted=Yes;'"
cn.Open
cmd.CommandText = "SELECT * FROM jz WHERE [deh] = 1830 "
cmd.ActiveConnection = cn
rs.Open cmd
JxWilson 2001-07-24
  • 打赏
  • 举报
回复
文件是以数据集的方式打开的,我已经CLOSE掉了!

那么缓存该如何更新呢?

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧