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

如何寫一個autoincrement number 的 Stored Procedure

 
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區
上一篇主題 :: 下一篇主題  
發表人 內容
Bill Chen



註冊時間: 2003-06-09
文章: 30


第 1 樓

發表發表於: 星期四 六月 12, 2003 6:21 pm    文章主題: 如何寫一個autoincrement number 的 Stored Procedure 引言回覆

各界高手

如何寫一個autoincrement number 的 Stored Procedure

bill Crying or Very sad
回頂端
檢視會員個人資料 發送私人訊息
Ruey



註冊時間: 2003-03-12
文章: 1698
來自: tunglo

第 2 樓

發表發表於: 星期四 六月 12, 2003 6:44 pm    文章主題: 引言回覆

SQL Server的
還是VFP的
請瞄述一下
還有你打算怎用
如果你正在寫
把它放上來

_________________
#############################
快樂媽咪系列幸福宅配,喝十全雞湯~原來幸福那麼簡單!!

學會VFP使用者社區的搜尋,Code才會更有趣~
#############################
回頂端
檢視會員個人資料 發送私人訊息
Bill Chen



註冊時間: 2003-06-09
文章: 30


第 3 樓

發表發表於: 星期四 六月 12, 2003 6:53 pm    文章主題: 引言回覆

是用VFP寫的,

function seq()
cur_pos = recno()
calcu max(recid) to v_recid
v_recid = vrecid+1
goto cur_pos
replace recid with v_recid
endfun

但當運行時, 出現以下:
Illegal recursion in rule evaluation
回頂端
檢視會員個人資料 發送私人訊息
Ruey



註冊時間: 2003-03-12
文章: 1698
來自: tunglo

第 4 樓

發表發表於: 星期五 六月 13, 2003 10:03 pm    文章主題: 引言回覆

可能出出錯在
calcu max(recid) to v_recid

可以用
TEMP=ALIAS()
select max(RECID) AS RECID frOM TEMP INSERT CURSOR TMP1

_________________
#############################
快樂媽咪系列幸福宅配,喝十全雞湯~原來幸福那麼簡單!!

學會VFP使用者社區的搜尋,Code才會更有趣~
#############################
回頂端
檢視會員個人資料 發送私人訊息
Bill Chen



註冊時間: 2003-06-09
文章: 30


第 5 樓

發表發表於: 星期三 六月 25, 2003 12:00 pm    文章主題: 如何寫一個autoincrement number 的 Stored Procedure 引言回覆

我在command window 運作是正常的, 但在stored procedure中便說 header locked, 不能update.
回頂端
檢視會員個人資料 發送私人訊息
Bill Chen



註冊時間: 2003-06-09
文章: 30


第 6 樓

發表發表於: 星期三 六月 25, 2003 12:05 pm    文章主題: 引言回覆

我的stored procedure 是這樣的


function seq()
select max(recid) from phonebook into cursor cursor_pb
v_recid = max_recid+1
select phonebook
replace recid with v_recid
endfun
回頂端
檢視會員個人資料 發送私人訊息
Bill Chen



註冊時間: 2003-06-09
文章: 30


第 7 樓

發表發表於: 星期五 六月 27, 2003 12:24 am    文章主題: 引言回覆

最後的解決方法是 在該欄的default value 設定為 setid("tablename")

然後寫以下的stored procedure

function setid()
lparameter strTableName
mselect = select()
select max(recid)+1 as max_recid from &strTableName into cursor tmp_cursor
retValue = tmp_cursor.max_recid
select(mselect)
return retValue
回頂端
檢視會員個人資料 發送私人訊息
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
1頁(共1頁)

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


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