From: [email protected] [mailto:[email protected]] On
Behalf Of Slava Ekimov
Sent: Wednesday, March 03, 2010 10:11 AM
To: [email protected]
Subject: Re: Проблема с получением уникального номера документа

 

>Проблема пропуска номера заключается в том что генератор получил следующее
значение, а документ не сохранился в этой транзакции и будет создан со
следующим номером при повторном вызове процедуры. Дублирование номеров то же
освобождает слишком много негативной энергии. Можно ли как воспользоваться
SAVEPOINT, или еще каким ни будь механизмом  что бы <подбирать> пропущенные
номера документов?

 

>Сначала записать документ с любым внутренним ID из генератора. А потом
изменить видимый номер, в другой транзакции.

А как же обеспечить целостность данных?

Так можно получить документы без номеров. 

 

Где то витает идея что получая новый номер регистрировать его в таблице типа
<номера документов> 

Нужно что то типа commit вставки если ошибка произошла.

 

Из самой программы это сделать можно  - в двух параллельных транзакциях, но
процедуры формирования создают несколько документов, сколько их получилось
известно только в конце выполнения процедуры.

 

Похожая проблема возникает когда нужно в базе данных регистрировать
exception по которым прерываются выполнение процедур и триггеров, что бы
протоколировать в таблице возникающие проблемы.

 

 

С уважением, Мещеряков Вадим

 

директор ООО "Комплексные Системы" 

454021 г. Челябинск ул. 40 лет Победы 31, 77

Тел: +7 (351) 2807917

Моб: +7 922 6395170    

Web: www.del-fin.ru

ICQ: 343-554-572

SKYPE: vadimmescheryakov

 

 

Ответить