![]() |
|
|
![]()
|
|
| devmstr |
|
|||
![]() Developer ![]() ![]() Профиль Группа: Участник Сообщений: 879 Регистрация: 28.4.2004 Где: Ukraine Репутация: нет Всего: 11 |
Есть база данных. К одной из таблиц постоянно происходит обращание сразу с нескольких машин. В основном они добавляю данные. Уникально только первое поле(всмысле гарантировано) числовое, остальные поля теоретически могу полностью совпадать. Проблема состоит в том что это поле генерируется следующим образом. Перед добавлением программа получает max значение данного поля и прибавляет к нему единицу и формирует значения всех полей и записывает эти данные в таблицу и делает ApplyUpdates. Но очень часто бывает такая проблема. Другая копия программы в этот же момент обращается к базе данных и получает такое же значение max, ну и т.д..
Как во-первых сделать чтобы поле само инкрементилось при добавлении новой записи? -------------------- Think different ©Steve Jobs ![]() |
|||
|
||||
| Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 14 Всего: 207 |
А что автоинкрементных полей база данных не поддерживает?
Вариант2 - использовать ключевое поле типа GUID -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
| SergeBS |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1111 Регистрация: 10.6.2005 Где: Владимир Репутация: 11 Всего: 22 |
devmstr,
Без вмешательства со стороны сервера корректного решения нет. С сервером - описано в соответствующем FAQ. Рекомендую статью Кузьменко насчет применения генераторов. Ibase.ru. Это сообщение отредактировал(а) SergeBS - 9.3.2006, 09:20 |
|||
|
||||
| Alex |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4147 Регистрация: 25.3.2002 Где: Москва Репутация: 17 Всего: 162 |
Сервер InterBase и все его клоны не имеют автоинкрементных полей, за место них есть мощное средство "Генераторы", генераторы не зависят от транзакций и всегда выдают уникальное значение http://ibase.ru/devinfo/generator.htm
-------------------- Написать можно все - главное четко представлять, что ты хочешь получить в конце. |
|||
|
||||
![]()
|
| Правила форума "Delphi: Базы данных и репортинг" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |