Вниз
Скачать: CL | DM;

Значение автоинкрементного поля   Найти похожие ветки 

← →
Marat111   (2003-05-22 15:25) [0]

Необходимо определить следующее значение автоинкрементного поля до выполнения Вставки записи


← →
гончий   (2003-05-22 15:31) [1]

Хотя бы для приличия СУБД напиши.


← →
alex_bredin ©   (2003-05-22 15:32) [2]

select max(id)+1


← →
AlexAlex   (2003-05-22 15:33) [3]

Надежно-ниикак: можно попытаться спрогнозировать (select max(id)+1 from table), но в многопользовательской среде это будет не всегда работать правильно. Можно попытаться самому формировать значения из программы или через триггер, но тут пойдут дополнительные проблемы. Лучше всего попытаться обойтись без подобных предсказаний.


← →
WarLord ©   (2003-05-22 15:55) [4]


> alex_bredin © (22.05.03 15:32)
> select max(id)+1

необязательно...может там кучу записей уже удалили
в СУБД с генераторами (напр Oracle) можно легко узнать, а например в парадоксе или MSSQL не узнаешь никак


← →
marat111   (2003-05-22 17:56) [5]

через BDE связываюсь с Paradox


← →
Dred2k ©   (2003-05-22 19:39) [6]

Если для парадокса, то тебе по-любому нужен некий синхронизирующий ресурс. В этом плане может выступить либо таблица с последним использованным значением ключа, либо обычный текстовый файл с этим же значением. Таблица или файл при получении очередного значения блокируются (exclusive в обоих случаях). Более красивое решение, на мой взгляд, - локирование таблицы с ключом на время вставки новой записи (через TTable.LockTable(ltWrite)). В случае неуспеха - несколько повторов через разумный делэй, в крайнем случае - соответсвующее сообщение пользователю.
Разумеется, при этом есть вопросы. Но это реальный надежный вариант. Во многих серверах, конечно, проще..., но как говорится - "работать надо". ;)


← →
Dred2k ©   (2003-05-22 19:41) [7]


> локирование таблицы с ключом

Точнее - "обновляемой таблицы".



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.01 c
1-34888
Mishenka
2003-05-31 12:23
2003.06.12
Как из программы запустить exe файл?


11-34764
VEG
2002-09-20 20:54
2003.06.12
OCX


1-34794
Vena
2003-05-30 12:17
2003.06.12
компонент DataTimePicker1


3-34736
BBCHa
2003-05-23 17:17
2003.06.12
Какая-то злая ошибка


1-34913
rocker
2003-06-01 11:31
2003.06.12
как использовать файл помощи chm




   Наверх