Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.06.12;
Скачать: 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 вся ветка

Текущий архив: 2003.06.12;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.02 c
14-35039
Makhanev A.S.
2003-05-27 16:14
2003.06.12
Delphi6 update pack2 & Windows 2000


14-35025
ilyasim
2003-05-26 06:00
2003.06.12
Access Violation


1-34898
sagchat
2003-06-01 11:03
2003.06.12
У меня на форме 5 Edit как мне сохранить из них текст в файл


1-34780
Артем К
2003-06-02 11:43
2003.06.12
Как не выбирая ячейки мышкой или клавой осуществить OnSelectCell?


1-34799
mirk
2003-06-02 13:38
2003.06.12
Чтение данных из текстового файла