powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / ошибка при сохранении отложенных изменений
2 сообщений из 2, страница 1 из 1
ошибка при сохранении отложенных изменений
    #32214320
minva
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть такая таблица:
Код: plaintext
1.
2.
3.
ID     TREE_ID        ORDER_NUM     ….
 1             1                  1 
 2             1                  2 




По TREE_ID и ORDER_NUM построен уникальный индекс.
В ADODataset установлена блокировка BATCHOPTIMISTIC.
В тексте программы написано примерно следующее.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
OldNum := dsTable1Order_num.Value;
dsTable1.Next;
NewNum := dsTable1Order_num.Value;
dsTable1.Edit;
dsTable1Order_num.Value := OldNum;
dsTable1.Post;
dsTable1.Prior;
dsTable1.Edit;
dsTable1Order_num.Value := NewNum;
dsTable1.Post;


Далее делаем dsTable1.BatchUpdate и получаю нарушение уникальности индекса.
Если уникальность отключить, то получаю то, что и хотел.
Код: plaintext
1.
2.
3.
ID     TREE_ID        ORDER_NUM     ….
 1             1                  2 
 2             1                  1 
 

Т.е. уникальность нарушается только в момент сохранения отложенных изменений. По моим представлениям это так: сохраняется первая запись и в таблице получается две записи с ORDER_NUM=2. Дальше уже ничего не происходит – ошибка. Так это работает, или я не прав? И как мне быть в моей ситуации. От Batch-а отказаться нельзя. Спасибо
...
Рейтинг: 0 / 0
ошибка при сохранении отложенных изменений
    #32214330
Фотография Mihail R.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
решение возможно не оптимальное:
присваивать сначала кокой-нибудь "левый" номер (-1 например),
а в конце заменять на то что требуется.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / ошибка при сохранении отложенных изменений
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]