![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Автоинкрементное поле [D5]
Destroyer © (2003-02-25 08:51:00)Добрый день.
Есть проблема:
Существует 2 таблицы, связанных отношением "один-ко многим", в главной таблице поле связи - автоинкрементное. Для обоих таблиц свойство CachedUpdates=True и должно быть именно так. Проблема в том, что при добавлении записи в основную таблицу значение автоинкрементного поля не определяется и я не могу связать записи вспомогательной таблицы с главной... Есть ли какое-нибудь простое решение такой проблемы?
Destroyer (2003-02-25 14:23:00) [1]Так ведь после того как я сделаю Commit откат будет невозможен, а после ApplyUpdates автоинкрементное поле еще не присвоено, так как кэш хотя и передан в БД, но еще не зафиксирован. Вот я и хочу узнать, есть тут выход какой-нибудь или нет?
Соловьев (2003-02-25 13:19:00) [2]Интересно, а как другой пользователь узнает, что ты там у себя держишь в кеше????
Он добавит запись с номером 10, а у тебя тоже 10, и кто прав? Имхо нужно делать commit.
Destroyer (2003-02-25 13:12:00) [3]>ну ок, ты его узнал, а потом сделал откат...
не понял, как сделать откат, если я уже применил?
да, многопользовательский режим...и проблемы с откатом были когда я пробовал через StartTransaction и т.д. Решил попробовать с CachedUpdates и тоже напоролся.
Соловьев (2003-02-25 13:02:00) [4]ну ок, ты его узнал, а потом сделал откат...
У тебя предполагается многопользовательский режим?
Destroyer (2003-02-25 12:57:00) [5]to Соловьев:
я вношу изменения в 2 таблицы, и связь идет именно по автоинкрементному полю главной таблицы. ApplyUpdates после добавления записи в главную таблицу я делать не могу, так как предполагается возможный откат...неужели никак не узнать будущее значение автоинкрементного поля? поле Integer делать - тоже та еще морока...
Соловьев (2003-02-25 12:39:00) [6]ApplyUpdate делаешь?
Соловьев (2003-02-25 12:39:00) [7]После Post просто оно еще в кеше, поэтому тебе надо его записать на диск.
Destroyer (2003-02-25 12:37:00) [8]to VAleksey: да, при CashedUpdates = false все работает, но хотелось бы при CashedUpdates = true
to Соловьев: СУБД = MS Access
Почему-то даже после вызова Post значение автоинкрементного поля = Null
Соловьев (2003-02-25 12:18:00) [9]СУБД?
VAleksey (2003-02-25 11:25:00) [10]А при CashedUpdates = false чё все работает что ли ?
Ozone (2003-02-25 09:11:00) [11]Попробуй сделать его (поле) типа Integer, и при добавлении вручную заполнять его.