Показать сообщение отдельно
Старый 20.06.2007, 14:44   #12  
e@gle is offline
e@gle
MCTS
MCBMSS
 
164 / 72 (3) ++++
Регистрация: 11.04.2005
Адрес: Минск
Цитата:
Спасибо. Т.е вы имеете ввиду что именно метод num.used() запретить использовать этот номер в дальнейшем даже если заказ с этим номером уже когда-то существовал ?
Идея такая. Вы создали экземпляр класса NumberSeq, в котором хранится новый номер. В этот момент система сохранила новый номер в список с признаком "Нерешенный".
Теперь если вы запускаете num.used(), то система понимает что номер использован и удаляет его из списка.
А если вы запускаете num.abort(), то система понимает что номер не использован, сохранит его в список с признаком "Свободен" и будет подсовывать его следующий раз.
Т.о. для гарантированного получения следующего номера надо сделать:
X++:
num = NumberSeq::newGetNum();
Id = num.num();
num.abort();
Цитата:
Только имейте ввиду что это почему то работет только для непрерывных номерных серий.
И очень хорошо что такая система реализована ТОЛЬКО для непрерывных номерных серий. Если мне без разницы какой там номер будет у моей закупки, то зачем эта вся тягомутина со списками? Лишние селекты-инсерты? А если взять таблицу потолще?
Таким образом если ты хочеш контролировать "дырки" в номерах, то делай непрерывную номерную серию и трать больше времени на создание-удаление записи. Не хочеш - отключай непрерывность.
__________________
С уважением, Павел Цераниди.
На пути к совершенству нет конца. Каждое новое достижение является отправной точкой для следующего крупного шага.