  | 
				VFP 愛用者社區 本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.   
				 | 
			 
		 
		 
	
		| 上一篇主題 :: 下一篇主題   | 
	 
	
	
		| 發表人 | 
		內容 | 
	 
	
		zfgg
 
 
  註冊時間: 2004-05-31 文章: 179 來自: 中国
  第 1 樓
  | 
		
			
				 發表於: 星期二 五月 15, 2007 6:31 pm    文章主題: 如何关闭独占表 | 
				     | 
			 
			
				
  | 
			 
			
				有一个表单,数据环境有Curricula.dbf。另外还有一个自由表供这个表单用,由getfile()获得,其实是另外一个Curricula.dbf表,结构相同,其目的是将getfile()获得的Curricula.dbf表数据导入到数据环境的Curricula.dbf表中。
 
当在表单中第一次执行程序时,运行正常。若再次执行时,在运行到USE _filePath+"&gatable1" EXCLU时,报错:“文件正在使用”。用USE IN SELECT("&gatable1") 、USE IN SELECT(0)、USE IN  "&gatable1"
 
均无效。最后在程序结束用“CLOSE TABLES”语句,多次运行不报错了。CLOSE TABLES语句能关闭很多表,这样用,虽然运行正常,但是心理不踏实。另外Curricula.dbf表是数据环境的共享表,程序运行时,提示要独占。其原因不明。
 
请各位大师帮助我分析,指出解决的办法。在此多谢了。
 
 
我的程序如下:
 
_lenfileName=getfile("Curricula:DBF","","确定")
 
_file=rat("\",_lenfileName)
 
_filePath= ALLTR(substr(_lenfileName,1,rat("\",_lenfileName)))
 
	if _file=0
 
	retu
 
	else
 
	_shofile=substr(_lenfileName,_file+1)
 
	declar gatable1(1)
 
	=adir(gatable1,"&_shofile") 
 
	ENDIF
 
	IF "&gatable1" # "CURRICULA.DBF" OR _filePath = _PATH_LOC
 
	=MESSAGEBOX("请找 Curricula.dbf文件,再试!或者Curricula.dbf在同一个目录下!",16,"错误")
 
	return
 
	ELSE
 
	IF !USED("&gatable1")
 
    SELECT 0
 
	USE _filePath+"&gatable1" EXCLU &&不用EXCLU 报错
 
	ENDIF 	
 
	SELECT "&gatable1"
 
	SELECT * FROM _filePath+"&gatable1" WHERE csid=_bh AND signs=_comboUser INTO table _PATH_LOC+"tmpCurri.dbf"	
 
** USE IN  "&gatable1"
 
    IF !USED("tmpCurri")
 
    USE _PATH_LOC+"tmpCurri.dbf" IN 0
 
	ENDIF 
 
	SELECT tmpCurri	
 
	IF RECCOUNT()>=1	
 
	IF !USED("Curricula")
 
     SELECT 0
 
	USE _PATH_LOC+"Curricula.dbf" EXCLU
 
	ENDIF 	
 
	SELECT Curricula
 
	LOCATE for csid=_bh and alltr(signs)=_comboUser
 
	IF FOUND()
 
	=MESSAGEBOX(_comboUser+" 写的学时分配表存在,不需要导入!",48,"Curricula")
 
	ELSE 
 
	APPEND FROM _PATH_LOC+"tmpCurri.dbf"
 
	=messagebox( ALTERDATA_LOC,48,caption1_loc)	
 
	ENDIF
 
	ELSE
 
	=messagebox( _comboUser+" 写的学时分配表没有!",48,caption1_loc)	
 
	ENDIF  
 
	USE IN tmpCurri
 
	ERASE _PATH_LOC+"tmpCurri.dbf"
 
	CLOSE TABLES | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		dkfdtf
 
  
  註冊時間: 2005-02-05 文章: 31 來自: guangzhou,china
  第 2 樓
  | 
		
			
				 發表於: 星期二 五月 15, 2007 8:34 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				| .... | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		yang1032
 
 
  註冊時間: 2004-06-19 文章: 58
 
  第 3 樓
  | 
		
			
				 發表於: 星期四 五月 15, 2008 11:32 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				若要再次執行
 
注意你開幾個檔,就要關閉幾個檔 | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		 | 
	 
 
  
  	 
	    
  	   | 
 	
您 無法 在這個版面發表文章 您 無法 在這個版面回覆文章 您 無法 在這個版面編輯文章 您 無法 在這個版面刪除文章 您 無法 在這個版面進行投票 您 無法 在這個版面附加檔案 您 無法 在這個版面下載檔案
  | 
   
  
		 |