[問題] vc++自動編號問題

看板C_and_CPP作者 (pineapple)時間14年前 (2011/03/29 16:01), 編輯推噓2(209)
留言11則, 3人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) VC++2008 問題(Question): 小弟目前遇到一個問題,我原本使用mysql的auto_increment來自動編號 但是遇到中間編號刪除時,新增下一筆卻只能從上筆編號+1儲存 無法插入空出來的編號,我上網查過辦法嘛沒法度ˊˋ 因為我預設讓他總筆數上限是45,只能用程式來做了。 例如1.2.3.4 刪除3 下一筆要插入編號3的位置 程式碼(Code):(請善用置底文網頁, 記得排版) int num=1; textBox1->Text= ""+ num; odbcSelectCommand1->Connection = odbcConnection1; odbcSelectCommand1->CommandText = L"Select intNo from Product"; //下面開始迷惘.. 補充說明(Supplement): 目前想法是先找出儲存過的編號去迴圈判斷哪幾個跳過,再下一筆新增時插入 沒有就正常下一筆,不知道這樣會很麻煩嗎?? 希望各位大大能教導我下一步該往哪個方向做...謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 210.242.65.228

03/29 16:10, , 1F
你搞錯 auto_increment 的用意了...
03/29 16:10, 1F

03/29 16:10, , 2F
它只不過就是一個流水號而已 流過了就過了
03/29 16:10, 2F

03/29 16:11, , 3F
所以不要用它來計數資料庫裡面的資料筆數
03/29 16:11, 3F

03/29 16:11, , 4F
要知道資料數量時 select count(*) 一下就好
03/29 16:11, 4F

03/29 16:24, , 5F
你需要把資料庫功能複習一下...
03/29 16:24, 5F

03/29 16:44, , 6F
我明白你們意思,會這麼做 為了讓1-45個這些編號都使用到
03/29 16:44, 6F

03/29 16:47, , 7F
46以上就超過商品的數目了...
03/29 16:47, 7F

03/29 23:32, , 8F
那你就不應該做用 auto_increment
03/29 23:32, 8F

03/29 23:32, , 9F
應該要的是每次插入都去找一次目前的最小空號
03/29 23:32, 9F

03/29 23:33, , 10F
不過 "46 以上就超過商品的數目" 這句話我覺得你還是沒抓到
03/29 23:33, 10F

03/29 23:33, , 11F
我說的 "流水號" 的意思
03/29 23:33, 11F
文章代碼(AID): #1DaP7F74 (C_and_CPP)