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

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

1,2,3,... многопользовательский вариант [D7, IB6.x]


AndrewVolkov ©   (2003-05-14 20:29:00) 

Доброго всем вечера
Вопрос следующего характера.

Многопользовательская база на 6 Интербейсе.
Проблема в следующем. Служит для регистрации людей (грубо говоря раз в месяц все повторяется)
Суть в следующем. Происходит регистрация людей, в итоге каждый должен получить свой номер. К примеру -1-ый, 2-ой, 3-ий
Через месяц то же самой повторяется. И опять надо начать нумерацию сначала, т.е. 1-ый, 2-ой и т.д.
Насколько я понимаю, генератор использовать неудобно, так как нумерация должна начинаться каждый раз с нуля. А вариант каждый раз к примеру брать max(NumberPeople), если первый клиентский комп запросит максимум - ему вернут к примеру 120, а через момент второй клиентский комп туда закинет запись В итоге получится клин 2 - 121 поля (а если по ним уникальный индекс, тогда ошибка)
Если кто сталкивался - как правильнее решить такую проблему???
Спасибо...


AndrewVolkov   (2003-05-15 00:59:00) [1]

Все разобрался, большое всем спасибо
натолнули на мысль, что у меня под столом лежит книга по Интербейсу
Там все отлично расписано


AndrewVolkov   (2003-05-15 00:43:00) [2]

с генератором как-то не хочется, удобнее в даном слчае было бы через маx(). Но не могу нигде найти, как сделать, чтобы транзакция ждала и не читала и не писала, пока эту таблицу не отпустит другая транзакция


kaif   (2003-05-15 00:35:00) [3]

А почему нельзя сбрасывать генератор в 0 ?
SET GENERATOR my_generator TO 0


AndrewVolkov   (2003-05-15 00:21:00) [4]

Почитал - суть понял, как сделать не понял

Что я должен где поставить

если одной транзакцией хочу сделать
выбор мах(fields)
2-ой insert
commit

как на время выполнение этой транзакции запретить другим транзакциям вообще чтение таблицы, точнее чтобы они ждали


Zacho   (2003-05-14 21:02:00) [5]

Стандартный подход:
Редактирование номеров запрещено.
Удаление записей запрещено.
При вставке новой записи таблица блокируется до окончания вставки. По этому вопросу читать http://www.ibase.ru/devinfo/pslock.htmи http://www.ibase.ru/devinfo/ibtrans.htm


Наверх

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