  | 
				VFP 愛用者社區 本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.   
				 | 
			 
		 
		 
	
		| 上一篇主題 :: 下一篇主題   | 
	 
	
	
		| 發表人 | 
		內容 | 
	 
	
		jakan9
 
 
  註冊時間: 2003-10-22 文章: 130
 
  第 1 樓
  | 
		
			
				 發表於: 星期六 四月 19, 2008 12:19 am    文章主題: select 如何測資料錯在那一筆 | 
				     | 
			 
			
				
  | 
			 
			
				例如:select aaa,val(bbb),dtoc(ccc) from tdata into array tmp
 
因tdata資料表格有錯,無法產生array.
 
如何得知 tdata 資料中那一筆資料有誤. | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		garfield Site Admin
  
  註冊時間: 2003-01-30 文章: 2160
 
  第 2 樓
  | 
		
			
				 發表於: 星期六 四月 19, 2008 9:10 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				資料筆數多嗎? _________________ 利用>>搜尋<<的功能會比問的還要快得到答案. | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		jakan9
 
 
  註冊時間: 2003-10-22 文章: 130
 
  第 3 樓
  | 
		
			
				 發表於: 星期六 四月 19, 2008 12:29 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				| 因為有60000 多筆資料,所以才頭痛,不知那一筆error | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		garfield Site Admin
  
  註冊時間: 2003-01-30 文章: 2160
 
  第 4 樓
  | 
		
			
				 發表於: 星期六 四月 19, 2008 3:15 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				每個陣列中元素的最大數目為65000,
 
改用 select .... into cursor tmp _________________ 利用>>搜尋<<的功能會比問的還要快得到答案. | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		jakan9
 
 
  註冊時間: 2003-10-22 文章: 130
 
  第 5 樓
  | 
		
			
				 發表於: 星期六 四月 19, 2008 6:55 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				改用 select .... into cursor tmp,則會找不出資料庫錯誤資料
 
在那一筆,要防止user 鍵入錯誤 | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		garfield Site Admin
  
  註冊時間: 2003-01-30 文章: 2160
 
  第 6 樓
  | 
		
			
				 發表於: 星期六 四月 19, 2008 10:06 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				為何 into cursor 不會出錯, 但 into array 卻會出錯 ?
 
找出錯誤的方式只能用 select ..... into .... 嗎?
 
事情真的是你假設的那種狀況嗎?
 
請仔細的重新想想問題在那裡. _________________ 利用>>搜尋<<的功能會比問的還要快得到答案. | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		jakan9
 
 
  註冊時間: 2003-10-22 文章: 130
 
  第 7 樓
  | 
		
			
				 發表於: 星期日 四月 20, 2008 7:25 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				| 因為是從60000 多筆資料中去select 料號_A 出約 5000 筆資料,所以會無法產生ARRAY ,若SELECT 料號_B 則會產生 ARRAY ,所以才會一直認為是 料號_A 資料檔某一筆有問題,要如何找誤錯格式的DATA,可是又不如何找. | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		nelsonchuang
 
 
  註冊時間: 2003-09-04 文章: 564 來自: 臺灣
  第 8 樓
  | 
		
			
				 發表於: 星期一 四月 21, 2008 8:57 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				Help說:陣列大小受可用記憶體的限制,特別是對於非常大的陣列,可能會影響效能。確定您的電腦有足夠的記憶體以容納您的陣列之最高上限。
 
你有試著確認這一點,或是去瞭解電腦回應給你的錯誤訊息嗎? _________________ 大家好,請多指教 | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		syntech
 
 
  註冊時間: 2003-05-16 文章: 4252 來自: Taipei,Taiwan
  第 9 樓
  | 
		
			
				 發表於: 星期一 四月 21, 2008 10:02 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				不是還有 select top N aaa,val(bbb),dtoc(ccc) from tdata into array tmp ,
 
這樣不就知道是不是 size 的問題.
 
 
n=1 就錯誤,那就是本來就錯了.
 
看看 select ... into cursor 有沒有問題.
 
 
n 到固定某個數字才錯,通常是 記憶體需求過多.
 
 
轉出來的 array 有沒有用 AELEMENT( ) 去查 轉出的筆數?
 
 
garfield 兄提示,
 
為什麼 into cursor 就找不出資料庫錯誤資料,
 
你的"資料庫錯誤"是怎麼定義的,
 
是不是你根本就搞錯.
 
 
 
你應該自己學習如何分析錯誤 _________________ 如果公司有下列困擾:
 
1. 找不到便宜,快速,簡易的 生產排程軟體
 
2. 不知道如何快速排定 採購計劃
 
3. 成本抓不準,自己算比軟體算有用
 
4. 想學習系統規劃,想找系統架構的顧問
 
 
請聯絡我們,也許我們幫得上忙 | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		區榮熾
 
 
  註冊時間: 2005-11-14 文章: 191
 
  第 10 樓
  | 
		
			
				 發表於: 星期一 四月 21, 2008 4:34 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				 	  | jakan9 寫到: | 	 		  | 因為是從60000 多筆資料中去select 料號_A 出約 5000 筆資料,所以會無法產生ARRAY ,若SELECT 料號_B 則會產生 ARRAY ,所以才會一直認為是 料號_A 資料檔某一筆有問題,要如何找誤錯格式的DATA,可是又不如何找. | 	  
 
 
請依  syntech 大大說的去做,得到錯誤資料之前資料,再用 VFP 打開 .DBF ,依序找尋錯誤的資料源,再行修正...
 
 
資料的輸入常因 Key In 動作的錯誤,而造成 Search 的困擾( ex.  xxx <> x xx )
 
所以進到 .DBF 內檢視內容, 以修正困擾.........
 
 
解決困擾是經驗的儲蓄銀行...............存越多領越多! | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		jakan9
 
 
  註冊時間: 2003-10-22 文章: 130
 
  第 11 樓
  | 
		
			
				 發表於: 星期一 四月 21, 2008 11:25 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				感謝各位回答,依 syntech 兄所提,用 select  top n 來找到那一筆停下來,就是沒想到.
 
 
(因為用into cursor tmp 會產生tmp ,但用 into array tmp 則無法產生 tmp) | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		 | 
	 
 
  
  	 
	    
  	   | 
 	
您 無法 在這個版面發表文章 您 無法 在這個版面回覆文章 您 無法 在這個版面編輯文章 您 無法 在這個版面刪除文章 您 無法 在這個版面進行投票 您 無法 在這個版面附加檔案 您 無法 在這個版面下載檔案
  | 
   
  
		 |