|
Проблема генерации инвентарных номеров
|
|||
---|---|---|---|
#18+
Привет всем. Посоветуйте решение такой проблемы. Есть некий учет. При вводе одной единицы хранения необходимо генерить автоматически инвентарный номер. Для этого используется генератор. Суть проблемы заключается в том, что инвентарные номера единицам хранения должны назначаться БЕЗ разрывов. Т.е. номера должны идти как 1,2,3,4,5... и т.д, но не 1,2,5,7... Разрывы возникают из-за того, что инвентарный номер, в целях безопасности, генерится ЗАРАНЕЕ. Но в процессе ввода атрибутов единицы хранения пользователь может отказаться от ввода этой единицы. Но номер-то уже сгенерен ! Если бы это было одно рабочее место, то можно было бы найти способ отката назад. Но это нельзя делать, если рабочих мест больше одного. Если кто-нибудь сталкивался с такой проблемой, подскажите решение. Хотя, я думаю, эта задача решения не имеет :-((( ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2003, 14:25 |
|
Проблема генерации инвентарных номеров
|
|||
---|---|---|---|
#18+
Можно попробовать select max(inventarniy_nomer) from .... ....но тоже опасно ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2003, 15:15 |
|
Проблема генерации инвентарных номеров
|
|||
---|---|---|---|
#18+
Ну да, как же, не имеет. max уж точно не надо, а так - куча способов. Чеще всего используют таблицу, из которой и считывают новый номер, прибавив единицу к значению. В блокирующей транзакции. http://www.ibase.ru/devinfo/pslock.htm например ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2003, 17:44 |
|
Проблема генерации инвентарных номеров
|
|||
---|---|---|---|
#18+
а если у меня есть инвентарные номера 1, 2, 3,..., 100 и еденицу 2 списали, этот номер освобождается для новых едениц хранения? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2003, 02:55 |
|
|
start [/forum/topic.php?fid=40&fpage=524&tid=1580728]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
51ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 148ms |
0 / 0 |