VFP 愛用者社區 首頁 VFP 愛用者社區
本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
 
 常見問題常見問題   搜尋搜尋   會員列表會員列表   會員群組會員群組   會員註冊會員註冊 
 個人資料個人資料   登入檢查您的私人訊息登入檢查您的私人訊息   登入登入

怎樣測試某個欄位是否存在?

 
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區
上一篇主題 :: 下一篇主題  
發表人 內容
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
回頂端
檢視會員個人資料 發送私人訊息 MSN Messenger
ckp6250



註冊時間: 2004-07-30
文章: 1642


第 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
回頂端
檢視會員個人資料 發送私人訊息 MSN Messenger
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
文章: 229
來自: 泰國

第 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 網站 + 手機 App, 都共享 MS SQL Server的資料. www.foxacc.com LINE: mike-lm
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 參觀發表人的個人網站 MSN Messenger
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
文章: 4211
來自: Taipei,Taiwan

第 10 樓

發表發表於: 星期五 十一月 06, 2015 4:04 pm    文章主題: 引言回覆

我自己通常用二樓的變種,
afield() +ascan()
臨時用八樓的.

"通常",因為我的form都是用afield 自動"喬"的,
免去人工犯錯可能.


---
我們家的東西沒有臨時找不到欄位需要新增的情況,
這個在事前規劃就應該考慮進去.
(^.^|||)

如果遇到沒有欄位,那就是table版本不正確.
更新table 就好.

_________________
如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問

請聯絡我們,也許我們幫得上忙
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 AIM Address
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
1頁(共1頁)

 
前往:  
無法 在這個版面發表文章
無法 在這個版面回覆文章
無法 在這個版面編輯文章
無法 在這個版面刪除文章
無法 在這個版面進行投票
無法 在這個版面附加檔案
無法 在這個版面下載檔案


Powered by phpBB © 2001, 2005 phpBB Group
正體中文語系由 phpbb-tw 維護製作