| 上一篇主題 :: 下一篇主題   | 
	
	
	
		| 發表人 | 
		內容 | 
	
	
		wsk
 
 
  註冊時間: 2004-01-14 文章: 51
 
  第 1 樓
  | 
		
			
				 發表於: 星期六 二月 26, 2011 10:01 pm    文章主題: 怎樣測試某個欄位是否存在? | 
				     | 
			 
			
				
  | 
			 
			
				請問各位前輩, 怎樣可以測試一個欄位是否存在, 如不存在, 可以新增. 
 
煩請各位指教. 謝謝 | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		211482
 
 
  註冊時間: 2003-07-15 文章: 53
 
  第 2 樓
  | 
		
			
				 發表於: 星期六 二月 26, 2011 11:39 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				IF TYPE("cod")#"C"
 
	ALTER TABLE product ADD cod C(2)
 
ENDIF | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		LiuRambo
 
 
  註冊時間: 2007-11-27 文章: 481
 
  第 3 樓
  | 
		
			
				 發表於: 星期一 二月 28, 2011 2:43 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				1樓的答案有風險吧
 
=======================
 
MESSAGEBOX(CHKCOL("cod"))
 
 
FUNCTION CHKCOL
 
	PARAMETER _c
 
	nF = AFIELDS(aFd)
 
	ef = .F.
 
	FOR xIisef = 1 TO nF
 
		IF UPPER(ALLT(aFd(xIisef,1)))==UPPER(ALLT(_c))
 
			ef = .T.
 
		ENDIF
 
	NEXT
 
	RETURN ef | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		ckp6250
 
 
  註冊時間: 2004-07-30 文章: 1645
 
  第 4 樓
  | 
		
			
				 發表於: 星期二 三月 01, 2011 9:51 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				| field() | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		zlabsoft
 
 
  註冊時間: 2003-10-18 文章: 22
 
  第 5 樓
  | 
		
			
				 發表於: 星期六 三月 05, 2011 5:51 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				LPARAMETERS lcFieldName, lcAlias
 
LOCAL llReturn, llCompatible, lnPosn
 
*
 
* Field Name Checker Ver 1.30
 
*
 
*** Input :
 
*
 
* lcFieldName	- Name of the field to be check (string)
 
* lcAlias		- Alias of the table (string)
 
*
 
*** Output : .T. - It is a field name (logic)
 
*
 
* Description :	This functionis for check for a field name exist in default / specify
 
*				table
 
*
 
* 13/07/2007 1.30 - Add support for fieldname like xxx.yyy or xxx->yyy
 
* 19/12/2001 1.20 - Code Optimized and check if alias specified already open
 
* 13/01/2001 1.10 - Code Optimized
 
* dd/mm/yyyy 1.00 - Prototype 
 
*
 
* By: Tommy Tsang
 
*
 
 
DO CASE
 
	CASE PCOUNT() > 1
 
		lcAlias	= IIF(VARTYPE(lcAlias) = 'C', lcAlias, ALIAS())	
 
	CASE '.'$lcFieldName
 
		lnPosn	 	= AT('.', lcFieldName)
 
		lcAlias		= LEFT(lcFieldName, lnPosn - 1)
 
		lcFieldName	= SUBSTR(lcFieldName, lnPosn + 1)
 
	CASE '->'$lcFieldName
 
		lnPosn	 	= AT('->', lcFieldName)
 
		lcAlias		= LEFT(lcFieldName, lnPosn - 1)
 
		lcFieldName	= SUBSTR(lcFieldName, lnPosn + 2)
 
	OTHERWISE
 
		lcAlias	= ALIAS()
 
ENDCASE
 
 
IF USED(lcAlias)
 
	llCompatible = (SET('COMPATIBLE') = 'ON')
 
	SET COMPATIBLE OFF
 
	llReturn = (FSIZE(lcFieldName, lcAlias) > 0)
 
	IF llCompatible
 
		SET COMPATIBLE ON
 
	ENDIF
 
ELSE
 
	llReturn	= .F.
 
ENDIF
 
 
RETURN llReturn | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		yang1032
 
 
  註冊時間: 2004-06-19 文章: 58
 
  第 6 樓
  | 
		
			
				 發表於: 星期一 三月 07, 2011 4:40 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				use  &filename
 
	flag =.t.
 
	 for k = 1 to fcount()
 
		if upper(field(k)) ="DF58"
 
			flag =.f.
 
			exit
 
		endif
 
	 next
 
	 use | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		yang1032
 
 
  註冊時間: 2004-06-19 文章: 58
 
  第 7 樓
  | 
		
			
				 發表於: 星期一 三月 07, 2011 4:44 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				use  &filename
 
flag =.t.
 
 for k = 1 to fcount()
 
if upper(field(k)) ="DF58"
 
flag =.f.
 
exit
 
endif
 
 next
 
 use | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		foxy
 
  
  註冊時間: 2007-08-16 文章: 265 來自: 泰國
  第 8 樓
  | 
		
			
				 發表於: 星期二 三月 08, 2011 1:05 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				IF TYPE("product.cod")="U" 
 
ALTER TABLE product ADD cod C(2) 
 
ENDIF _________________ 進銷存+生產製造+會計+員工薪資+CRM+POS零售+餐廳手機app+電商手機app+電商網站,物流系統. 正/簡體中文,英,日,泰,緬甸文. MS SQL Server + 前台 VFP + PHP 網站 + Flutter 手機 App, 都共享 MS SQL Server的資料.  www.foxacc.com  LINE: mike-lm | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		ezpos
 
 
  註冊時間: 2011-04-20 文章: 323
 
  第 9 樓
  | 
		
			
				 發表於: 星期五 十一月 06, 2015 11:31 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				 	  | foxy 寫到: | 	 		  IF TYPE("product.cod")="U" 
 
ALTER TABLE product ADD cod C(2) 
 
ENDIF | 	  
 
 
這個方法簡單....好用 _________________ ezPos收銀機 簡單好用低成本  http://www.ezpos.info
 
全新美觀的POS收銀機.POS軟硬體耗材.
 
軟體客制化.網站規劃....能賺錢的都可以找我
 
 
http://www.twelife.com 台灣生活網 | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		syntech
 
 
  註冊時間: 2003-05-16 文章: 4252 來自: Taipei,Taiwan
  第 10 樓
  | 
		
			
				 發表於: 星期五 十一月 06, 2015 4:04 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				我自己通常用二樓的變種,
 
afield() +ascan()
 
臨時用八樓的.
 
 
"通常",因為我的form都是用afield 自動"喬"的,
 
免去人工犯錯可能.
 
 
 
---
 
我們家的東西沒有臨時找不到欄位需要新增的情況,
 
這個在事前規劃就應該考慮進去.   
 
(^.^|||)
 
 
如果遇到沒有欄位,那就是table版本不正確.
 
更新table 就好. _________________ 如果公司有下列困擾:
 
1. 找不到便宜,快速,簡易的 生產排程軟體
 
2. 不知道如何快速排定 採購計劃
 
3. 成本抓不準,自己算比軟體算有用
 
4. 想學習系統規劃,想找系統架構的顧問
 
 
請聯絡我們,也許我們幫得上忙 | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		 |