iT邦幫忙

0

ASP 訂單流水號重複

asp
  • 分享至 

  • xImage

已經利用Application來控制了,但還是有重覆單號的問題該怎麼處理比較好呢?
不做DB的讀寫來控制流水號是不是光靠Application沒辦法保證取號問題出現。

看更多先前的討論...收起先前的討論...
「我已經裝上翅膀了,但不能飛要怎麼處理」
或許你可以先試回答看看上面這個問題
然後想想我們怎麼看待你的問題。
在SQL上寫個user defined function來取得唯一流水號,傳回流水號之前,先在資料庫的流水號標記上加1
rex0220 iT邦新手 4 級 ‧ 2020-09-24 11:26:11 檢舉
所以還是要做DB讀寫比較好是嘛,原本想說這沒必要與DB做勾稽。
Application上的變數不會自動回存到任何地方,沒錯吧?要是IIS發生錯誤必需重開,斷電........那最後一筆流水號在哪裡?即時到資料庫抓交易記錄的最後一筆做Application variant的初始值?
rex0220 iT邦新手 4 級 ‧ 2020-09-24 11:52:53 檢舉
沒錯不會回存,所以是Application+年月日來控制單號,我是整個表單送出才會存回DB,所以只要沒送出,遺失就還好,重新打單就好了,不過會有重開或斷掉這問題確實沒想到,那我會嘗試與DB做勾稽的,感謝。
阿偉 iT邦新手 2 級 ‧ 2020-09-27 09:01:08 檢舉
AP用
年月日時分秒毫秒
比較不會重複
SQL寫的流水號才準確
至少開單的時候可以鎖定資料庫

不會有兩個使用者同時在開單
結果第二位比較晚送單,但資料卻都打好了
送出後才出現流水號重覆不給送單的問題
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
dscwferp
iT邦高手 1 級 ‧ 2020-09-24 11:58:47
最佳解答

有重覆單號的問題
是因為Application 是存在ram裡
IIS 重開 or server重開
都會 清空 Application 值
所以要找個不會清空的方法來存流水號啊!
存到硬碟是最快方法
用DB/TXT/LOG/SQLITE/NoSQL/... 等 都可以!
看您喜歡喔!
不想存硬碟
用 不會重複的 比如 "時間戳記"/亂數/GUID 等 也是可以!
或許您會喜歡 "時間戳記" 喔!
yyyyMMddHHmmssfff 到毫秒!

rex0220 iT邦新手 4 級 ‧ 2020-09-24 13:12:42 檢舉

經過考慮果然還是必須做儲存比較保險,感謝建議。

我要發表回答

立即登入回答