Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Генерация уникального номера [D6, IB6.x]


Belkova ©   (2003-05-29 21:47:00) 

Мастера Delphi! Подскажите как будет работать, если генерацию уникальных номеров (например в счетах-фактурах) выполнять как Select Max() From Table +1 и на момент выполнения транзакции блокировать необходимые таблицы от каких-либо изменений и в случаи отката -1. Если очень плохо, то как это можно сделать? Генератор не подходит, т.к. в случае Rollback он не уменьшает №, а в счетах-фактурах пробелы не допускаются.


Ann   (2003-05-30 08:49:00) [1]

ну да.. если без пропусков тогда генератор не подходит...


Zacho   (2003-05-30 08:44:00) [2]


> Ann © (30.05.03 08:36)

Да и я бы посоветовал генератор, или вообще ввод номеров вручную оператором.
Но если нужна нумерация без пропусков - то единственный выход все-таки - SELECT MAX с блокировкой на время формирования нового документа.


Ann   (2003-05-30 08:36:00) [3]

я бы тоже посоветовала генератор..


Danilka   (2003-05-30 07:27:00) [4]

Вообще-то в данном случае я бы посоветовал все-таки воспользоваться генератором, т.к. нумерация в счетах-фактурах допускает пробелы. :))
На самом деле, сколько знаю предприятий, не видел еще ни одного без пробелов. У нас так вообще номер составной. На всякий случай пересмотрел "Консультант+", единственные требования к нумерации обнаружил вот-здесь:

МИНИСТЕРСТВО РОССИЙСКОЙ ФЕДЕРАЦИИ ПО НАЛОГАМ И СБОРАМ
ПИСЬМО от 21 мая 2001 г. N ВГ-6-03/404

О ПРИМЕНЕНИИ СЧЕТОВ - ФАКТУР ПРИ РАСЧЕТАХ ПО НАЛОГУ НА ДОБАВЛЕННУЮ СТОИМОСТЬ

...нумерация счетов - фактур производится в порядке возрастания номеров в целом по организации. Возможно как резервирование номеров по мере их выборки, так и присвоение составных номеров с индексом обособленного подразделения;...


И то, это всего лишь письмо.


Zacho   (2003-05-30 06:38:00) [5]


> kaif © (30.05.03 02:50)

Так там же не генератор, а SELECT MAX с блокировкой таблиц, так что прекрасно откатится


kaif   (2003-05-30 02:50:00) [6]

2 Zacho © (29.05.03 21:55)

Если генератор щелкнул, то он не откатится.


Belkova   (2003-05-29 22:48:00) [7]

Спасибо!


Zacho   (2003-05-29 21:55:00) [8]


> Belkova (29.05.03 21:47)
> Мастера Delphi! Подскажите как будет работать, если генерацию
> уникальных номеров (например в счетах-фактурах) выполнять
> как Select Max() From Table +1 и на момент выполнения транзакции
> блокировать необходимые таблицы от каких-либо изменений
> и в случаи отката -1.

Блокировать не только от изменений, но и на чтение. -1 - не надо, вставка же откатится. Транзакции нужно сделать как можно более короткими. При таких условиях - будет вполне нормально.
Плюс к этому - запретить удалять документы и редактировать номера.
А еще по этой теме можно почитать http://www.ibase.ru/devinfo/pslock.htmи http://www.ibase.ru/devinfo/ibtrans.htm


Наверх

Титульная страница Поиск, карта сайта Написать письмо