全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1383
推到 Plurk!
推到 Facebook!

防止重覆新增同樣的ID

尚未結案
Teresa_Chang
一般會員


發表:41
回覆:42
積分:16
註冊:2004-05-04

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-09-10 12:33:26 IP:211.74.xxx.xxx 未訂閱
我寫了一個基本的資料庫程式是用Query的元件撰寫而成的, 但是我希望每次新增一筆資料的時候, ID可以以自動編號的方式, 不要用手動的方式, 這樣就可以防止ID重覆。 另外,刪除的部分, 如何判斷此ID在資料庫已經不存在了, 因為我的程式常常發生這筆資料已不存在, 會導致程式的錯誤~~ 急需知道答案啊~~
folkchen
高階會員


發表:9
回覆:232
積分:173
註冊:2003-10-09

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-09-10 13:06:31 IP:211.20.xxx.xxx 未訂閱
我用的是最笨的方式 在各個 Aadd,Del,Upd 之前先 Query 一次看它在不在或取出序號 再做處理 希望其他大大有更好的方法分享
oioio2
一般會員


發表:0
回覆:11
積分:2
註冊:2004-09-08

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-09-10 14:06:59 IP:218.172.xxx.xxx 未訂閱
引言: 但是我希望每次新增一筆資料的時候, 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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-09-10 14:57:52 IP:211.74.xxx.xxx 未訂閱
sorry,刪除的問題是我自己的錯誤, 你們所謂的AutoID這個部分請問我可以利用程式的方式解決嗎? 另外,我在書上看到很多程式常常使用TDBNavigator這個元件, 我可以寫一個程式也具有這個元件的功能嗎?
folkchen
高階會員


發表:9
回覆:232
積分:173
註冊:2003-10-09

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-09-10 15:20:58 IP:211.20.xxx.xxx 未訂閱
程式不可能知道你前一次用到那一個號碼了,尤其是在多人多電腦使用的情況下 除非你去SELECT一次再 1來使用,這就是我前面所寫的 但是它有一個缺點 在SELECT到你INSERT之間的 有人做同樣的事時,有可能造成塞進同一筆資料 雖然只有數m秒的時間,但這不是不可能發生的 所以用"自動編號"的方式會比較好 但是不是所有的資料庫都有這個功能 至少ORACLE沒有,但是它有另一個序號功能 ORACLE少人用,我就不提了 至於你說的TDBNavigator這個元件 它就是把AIDU的功能做在一起讓你不用寫那一堆程式 若你不想用元件,就自己寫AIDU 裡面只有Commit和Rollback功能比較特別 那要用到Connection的BeginTrans()、CommitTrans()、RollbackTrans() 來做了
Teresa_Chang
一般會員


發表:41
回覆:42
積分:16
註冊:2004-05-04

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-09-10 16:10:06 IP:211.74.xxx.xxx 未訂閱
sorry~~ 因為我是剛學builder,對資料庫還不是很了解, 我是用builder所提供的Database寫的, 我不太會調裡面的設定(如何把它設定為自動編號), 不過我試了一下Access, 可是程式沒有辦法動作耶~~ 是為什麼呢?
bigdogchina
版主


發表:238
回覆:523
積分:312
註冊:2003-04-28

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-09-11 10:46:01 IP:211.162.xxx.xxx 未訂閱
前面倆位大大已經講的很清楚了,在Access中設置自動編號只需要在資料類型中選擇就可以啦 < src="http://delphi.ktop.com.tw/loadfile.php?TOPICID=17576841&CC=393099"> ================================= 人生在勤,不索何獲 業精於勤荒於嬉,行成於思毀於隨 臨淵羡魚不如退而結網
------
人生在勤,不索何获?
系統時間:2024-05-05 23:24:21
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!