線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2736
推到 Plurk!
推到 Facebook!

請問刪除某一流水號ID後,之後的流水號如何update??

尚未結案
markpeng73
一般會員


發表:10
回覆:14
積分:4
註冊:2005-01-26

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-01-31 13:19:33 IP:140.109.xxx.xxx 未訂閱
請問刪除某一流水號ID後,之後的流水號如何update?? 我的流水號ID是利用新增資料時,將該ID的value加1來產生(為數字型態),現在假如有10筆資料,我在使用Table->delete()刪除第5筆資料之後,該如何讓之後資料的ID成功的向上update??(即第六筆的ID變為5) 我寫了一段code來做.....但是執行時卻會整個停住(游標停在SQL圖形狀態) 以下是我在delete的button裡寫的code: Table->Delete(); while( !Table->Eof ) { Table->Edit(); ID->Value = ID->Value - 1; Table->Post(); Table->Next(); } 請各位幫幫我解答,謝謝!
folkchen
高階會員


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-02-01 13:50:29 IP:211.20.xxx.xxx 未訂閱
你一筆筆去改資料太慢了 直接用SQL改比較快,一個指令就好了 Update TableName set ID=ID-1 Where ID>5
暗黑破壞神
版主


發表:9
回覆:2301
積分:1627
註冊:2004-10-04

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-02-01 14:50:24 IP:221.169.xxx.xxx 未訂閱
流水號? 改它幹嘛? 有些流水號就是拿來當做 uni ID 用的。 它可能會跟其它的 TABLE有所關聯。 你刪了或是改了它。可能會造成DATABASE的錯亂勒。 雖然你可以用 SQL 的語法像 folkchen 所說的那樣改。 可是。我個人不建議這樣的做法。
markpeng73
一般會員


發表:10
回覆:14
積分:4
註冊:2005-01-26

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-02-01 14:53:05 IP:140.109.xxx.xxx 未訂閱
先謝謝你的答覆!(終於有人理我了> <)....但是我想請問一下....query元件可以連結Access資料庫嗎(.mdb)??....因為Table不可以用SQL,但是我使用query卻又抓不到我的access資料庫....我在query的sql屬性裡面打了以下的code: select *from "dbtest.mdb" (我將dbtest.mdb放在一起project資料夾內) 但是activate設成true卻一直無法連上,出現錯誤訊息,說我給的檔案路徑可能有錯或是不存在..... 那該怎麼辦?? 如果不使用sql語法有更快的方法嗎?? 真是麻煩各位了..謝謝!
markpeng73
一般會員


發表:10
回覆:14
積分:4
註冊:2005-01-26

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-02-01 15:04:35 IP:140.109.xxx.xxx 未訂閱
給暗黑破壞神: 謝謝你的答覆,但是我會向去改流水號ID是有原因的. 因為我正在寫一個管理客戶相關資料的資料庫程式. 而每個客戶的ID是我自己用新增時value加1的方式讓他產生(型態為整數) 而每個客戶ID是要給該客戶記得,就像是會員的帳號碼一樣...... 當客戶來店內消費(比方說),只要告訴我們他的id是多少,我們就可以馬上調閱 出他的相關資料,以他的喜好與習慣來提供產品及服務. 而當必須刪除其中一筆客戶資料時(如該客戶退出會員), 我就希望能夠維持資料ID的連續性,方便管理及搜尋 ID的連續性也可以讓我們只要看做後一筆是多少號就知道有多少會員 因此,這就是我希望能夠更改及update客戶流水號ID的原因.**
folkchen
高階會員


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

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-02-01 16:58:49 IP:211.20.xxx.xxx 未訂閱
>>而當必須刪除其中一筆客戶資料時(如該客戶退出會員) 若你的ID是其他TABLE的連接值的話 這樣會有問題唷 到最後Join出來的資料都會錯誤 >>我使用query卻又抓不到我的access資料庫.... 你加上路徑試試看,記得,2個斜線代表一個斜線 "C://RPT//aa.mdb" >>ID的連續性也可以讓我們只要看做後一筆是多少號就知道有多少會員 你只要用以下的SQL就可以查會員人數了 Select count(ID) From TableName 發表人 - folkchen 於 2005/02/01 17:04:47
markpeng73
一般會員


發表:10
回覆:14
積分:4
註冊:2005-01-26

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-02-02 10:45:03 IP:140.109.xxx.xxx 未訂閱
folkchen謝謝你的答覆!.....因為我是初學者...什麼都是在亂摸.. 現在觀念終於比較清楚了....我想我不會再執意要讓ID連續了︿︿ 而mdb路徑的部分我晚上會回去試試看!(我買的書居然路徑是用"\"不是"//")想再請問一下,如果說我的客戶基本資料ID跟其他客戶相關的Table有關聯, 那我如果使用delete()刪除某筆資料會有問題嗎? 如果想要清除一筆不需要的 客戶資料該怎樣做才最安全? 另外,再請問一個關於inputbox的一個一直讓我搞不透的問題... 我在OnFormActivate裡面打了以下的code: int OldCID; OldCID = StrToInt(InputBox("舊客戶", "請輸入該客戶的ID:", "")); 之後執行遇到一個很奇怪的問題, 就是"請輸入該客戶的ID:"只顯示出"請輸入該客"....我試了幾百種寫法 尾巴還是會缺幾個字沒顯示出來.....這是bug嗎?? 請不吝賜教,謝謝~!
暗黑破壞神
版主


發表:9
回覆:2301
積分:1627
註冊:2004-10-04

發送簡訊給我
#8 引用回覆 回覆 發表時間:2005-02-02 17:33:16 IP:221.169.xxx.xxx 未訂閱
通常這個流水號是給”系統串聯”使用。 並不會出現在使用者看得到的地方。 也就是說。所有的客戶資料中會有客戶編號,姓名。。。。。等。 但,通常會有一個流水ID。這個可以做為1:N的資料庫。 對應到這個客戶的消費記錄。 這樣你可以在客戶檔找到這個客戶外。還可以用這個ID去找到他的消費記錄。。。。。等。 這類應用請查閱資料庫的書。 也許你還會問。我直接用身份證或我給的一個什麼鳥號碼給客戶。 然後消費檔就用這個來串聯不也可以嗎? 當然可以。可是考量到你在串聯”JOIN。。。。”這些動作時。 你要做的SEARCH的比對動作。會比用 整數的ID來的費時。 而且。它也會佔用比較多的檔案空間。如果你用身份證號這類東西的話。^_^
markpeng73
一般會員


發表:10
回覆:14
積分:4
註冊:2005-01-26

發送簡訊給我
#9 引用回覆 回覆 發表時間:2005-02-02 20:18:55 IP:61.222.xxx.xxx 未訂閱
暗黑破壞神真是謝謝你的詳細說明^^..... 我也是使用整數的ID來做流水號,當新增資料時將ID加1 而我想要使用Master/Detail的方式,讓資料表之間能夠透過 整數型態的客戶ID來互相關聯;而我想知道的是,當這些資料表join 之後,如果刪除其中一筆資料,該筆資料會自動將其所對應到的資料表的 相關資料都正確成功的刪除嗎? 會不會有問題??
folkchen
高階會員


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

發送簡訊給我
#10 引用回覆 回覆 發表時間:2005-02-03 08:57:34 IP:211.20.xxx.xxx 未訂閱
>>就是"請輸入該客戶的ID:"只顯示出"請輸入該客"....我試了幾百種寫法 >>尾巴還是會缺幾個字沒顯示出來.....這是bug嗎?? 算是BUG吧 是BCB在算文字長度,要顯示文字LABLE時沒有考慮到中文字長度不同的問題 你只要在後面多加幾個空白就可以了     
 OldCID = StrToInt(InputBox("舊客戶", "請輸入該客戶的ID:           ", "")); 
>>如果刪除其中一筆資料,該筆資料會自動將其所對應到的資料表的 >>相關資料都正確成功的刪除嗎? 會不會有問題?? 不會自動刪,你要用SQL去刪其他的Table 若不去刪,是不會有大問題,只是會有很多垃圾 另外如果有用到 Out Join 的話,就有可能會有問題 有可能出現一些不應存在的資料 發表人 - folkchen 於 2005/02/03 08:59:49
huanyuan
一般會員


發表:18
回覆:48
積分:18
註冊:2003-07-14

發送簡訊給我
#11 引用回覆 回覆 發表時間:2005-02-03 22:01:40 IP:220.132.xxx.xxx 未訂閱
引言: 暗黑破壞神真是謝謝你的詳細說明^^..... 我也是使用整數的ID來做流水號,當新增資料時將ID加1 而我想要使用Master/Detail的方式,讓資料表之間能夠透過 整數型態的客戶ID來互相關聯;而我想知道的是,當這些資料表join 之後,如果刪除其中一筆資料,該筆資料會自動將其所對應到的資料表的 相關資料都正確成功的刪除嗎? 會不會有問題??
我的印象中... 在Access中刪除Master的資料... 會把和Master有相關聯的Detail都刪除... 你可以試試...
markpeng73
一般會員


發表:10
回覆:14
積分:4
註冊:2005-01-26

發送簡訊給我
#12 引用回覆 回覆 發表時間:2005-02-05 14:00:53 IP:61.222.xxx.xxx 未訂閱
引言: -------------------------------------------------------------------------------- 暗黑破壞神真是謝謝你的詳細說明^^..... 我也是使用整數的ID來做流水號,當新增資料時將ID加1 而我想要使用Master/Detail的方式,讓資料表之間能夠透過 整數型態的客戶ID來互相關聯;而我想知道的是,當這些資料表join 之後,如果刪除其中一筆資料,該筆資料會自動將其所對應到的資料表的 相關資料都正確成功的刪除嗎? 會不會有問題?? -------------------------------------------------------------------------------- 我的印象中... 在Access中刪除Master的資料... 會把和Master有相關聯的Detail都刪除... 你可以試試... ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 不好意思,我試過了...不會自動刪除,得自己另外呼叫Detail資料表刪除@@ 請問是我做錯了嗎? 直接呼叫Master的delete()只會刪掉Master的資料. 而其他的detail資料表我是使用: void __fastcall TCDB::BitBtn4Click(TObject *Sender) { CTable->Delete(); //Master 資料表 CEatDB->CEatTable->FindKey(new TVarRec(CID->Value), 0); CEatDB->CEatTable->Delete(); //Detail資料表 } 請問各位大大有更好的方法嗎? 謝謝~!
系統時間:2024-04-25 21:29:16
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!