如何在程序中处理"文件正在使用","不能存取文件"等错误?

dlcxl 2003-01-09 09:51:57
在程序中运行"index on xxdm to bjqkxxdm"时出错"不能存取文件"或执行"dele files bjqkxxdm.idx"时出错"文件正在使用",请问如何处理好?
...全文
143 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
aabiao 2003-01-18
  • 打赏
  • 举报
回复
可能在另外一个工作区或另外一个用户使用了相同的索引文件名
comeonstuding 2003-01-17
  • 打赏
  • 举报
回复
up
在删除一个表的元组是也会出现这个问题
marki 2003-01-09
  • 打赏
  • 举报
回复
dlcxl (dlcxl),
你好,
我認爲是這樣的,
給表建立索引時表是需獨占打開的,由此,原因有3,
1.你可能之前已打開表,
2.該表還沒打開
3.當前工作區不對

我不認爲在程序設計中臨時建立索引是好方法,
索引應該事先建好,在使用時應置環境爲共享模式
(SET EXCLUSION OFF),然後如下使用表,

IF NOT USED('表')
USE 表 IN 0
SELECT 表
ELSE
SELECT 表
ENDIF
SET ORDER TO tag IN 表
dlcxl 2003-01-09
  • 打赏
  • 举报
回复
先谢谢帮忙.是在vfp表单的command按钮中,所以不能close all 或退出vfp,
看vfp中是否有关闭某个指定文件的命令?
chjpeng 2003-01-09
  • 打赏
  • 举报
回复
是在vfp環境中還是在應用程序里面?
如是在vfp環境中,則先把所有vfp編制的相關程序退出,再試試
如是在應用程序中,可在vfp環境中輸入close all,或退出vfp,應該可以
boomit 2003-01-09
  • 打赏
  • 举报
回复
对于表文件是否打开可以用used()函数进行判断。。。。
流星尔 2003-01-09
  • 打赏
  • 举报
回复
因为你已经打开了表,所以就不能用.
在delete前加
if used("tablename")
use
endi
delete file tablename
jne855 2003-01-09
  • 打赏
  • 举报
回复
你用了数据环境吗?
如果是的是,是否有在程序中用了use 打开这个表
如果都是,那么用完表了就用下面的语句,把表关闭
sele table
use
用的时候在用use 打开表用

2,749

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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