防止重覆新增同樣的ID |
尚未結案
|
Teresa_Chang
一般會員 ![]() ![]() 發表:41 回覆:42 積分:16 註冊:2004-05-04 發送簡訊給我 |
|
folkchen
高階會員 ![]() ![]() ![]() ![]() 發表:9 回覆:232 積分:173 註冊:2003-10-09 發送簡訊給我 |
|
oioio2
一般會員 ![]() ![]() 發表:0 回覆:11 積分:2 註冊:2004-09-08 發送簡訊給我 |
引言: 但是我希望每次新增一筆資料的時候, ID可以以自動編號的方式, 不要用手動的方式, 這樣就可以防止ID重覆。假設你用的是Access資料庫, 給你一個最簡單又聰明的方法, 將資料表增加一個欄位,資料型態選擇[自動編號](內部其實是長整數), 這樣就好了,不用寫半行程式。 新增一筆紀錄時,這個欄位Access會自動幫你填入流水號。 假設你的資料表有 AutoID(自動編號),Field1 兩個欄位 sql 語法如下: Insert Into Table1 (Field1) Values ('xxxxxx'); 請注意不必加入AutoID[自動編號],這個欄位Access會自動幫你填入流水號。 除了Access之外,SQL Server也有類似的功能, 其他的關聯資料庫相信也會提供類似機制。 如果能熟悉精通資料庫系統,很多工作資料庫系統能夠做的更快更好更簡單, 正確的觀念可以避免做白工。 引言: 另外,刪除的部分, 如何判斷此ID在資料庫已經不存在了, 因為我的程式常常發生這筆資料已不存在, 會導致程式的錯誤~~不解??? |
Teresa_Chang
一般會員 ![]() ![]() 發表:41 回覆:42 積分:16 註冊:2004-05-04 發送簡訊給我 |
|
folkchen
高階會員 ![]() ![]() ![]() ![]() 發表:9 回覆:232 積分:173 註冊:2003-10-09 發送簡訊給我 |
程式不可能知道你前一次用到那一個號碼了,尤其是在多人多電腦使用的情況下
除非你去SELECT一次再 1來使用,這就是我前面所寫的
但是它有一個缺點
在SELECT到你INSERT之間的
有人做同樣的事時,有可能造成塞進同一筆資料
雖然只有數m秒的時間,但這不是不可能發生的
所以用"自動編號"的方式會比較好
但是不是所有的資料庫都有這個功能
至少ORACLE沒有,但是它有另一個序號功能
ORACLE少人用,我就不提了 至於你說的TDBNavigator這個元件
它就是把AIDU的功能做在一起讓你不用寫那一堆程式
若你不想用元件,就自己寫AIDU
裡面只有Commit和Rollback功能比較特別
那要用到Connection的BeginTrans()、CommitTrans()、RollbackTrans()
來做了
|
Teresa_Chang
一般會員 ![]() ![]() 發表:41 回覆:42 積分:16 註冊:2004-05-04 發送簡訊給我 |
|
bigdogchina
版主 ![]() ![]() ![]() ![]() ![]() 發表:238 回覆:523 積分:312 註冊:2003-04-28 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |