![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 27.07.2007
Сообщений: 123
|
![]()
есть две таблицы 1-главная, 2-подчиненая.
программа сетевая и в одо и тоже время могут добавить записи несколько пользователей, как мне проставлять id в подчиненной таблице если транзакция главной таблици не закомичена(commit)? ![]() PS суть программы: шапка документа и табличная часть (как накладные делают)
Ну что ж… Жизнь иногда такие фертеля выкидывает, что и фантасту не приснится…
![]() |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 04.03.2007
Сообщений: 615
|
![]()
используй генераторы
gen_id(gnr_name_generator,1) |
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 27.07.2007
Сообщений: 123
|
![]()
это понятно - увеличение значения генератора на 1.
проблема в другом: если запись в главной таблице еще не записана, а требуется вводить данные в подчиненную таблицу какой id вставлять в ПОДЧИНЕННУЮ таблицу? ![]()
Ну что ж… Жизнь иногда такие фертеля выкидывает, что и фантасту не приснится…
![]() |
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 04.03.2007
Сообщений: 615
|
![]()
у тебя id в главной таблице (номер накладной) - к примеру таблица DOC (шапка накладных) должен быть равным id в подчинённой таблице (номенклатура в накладной) к примеру в таблице PosDoc
а противном случае, как же ты будешь выставлять счёт-фактуру на оплачиваемый товар? на основании чего? на основании счёта. соответвенно в базе об этом должна быть информация |
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 31.10.2007
Сообщений: 103
|
![]()
Можно сохранять все ID подчиненной таблице в массиве и потом при заиси документа проставить туда ID основной таблицы. Но та делать не стоит как ты можешь добавить подчиненную запись не имея главной записи. А если пользователь создаст документ насохраняет подчиненных записей а потом его закроет не сохраняя главную запись что тогда? удалять все записи которые занес пользователь. Лучше все подчиненные заиси хранить в памяти до, записиглавной.
|
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 04.03.2007
Сообщений: 615
|
![]()
AlexandrSid
для этого и есть генераторы а подчинённая и главная аблица - я описал выше... |
![]() |
![]() |
![]() |
#7 | |
Форумчанин
Регистрация: 31.10.2007
Сообщений: 103
|
![]() Цитата:
Для чего? Для этого? |
|
![]() |
![]() |
![]() |
#8 | |
Форумчанин
Регистрация: 27.07.2007
Сообщений: 123
|
![]() Цитата:
вот я тут схемку нарисовал как оно получается (для наглядности)
Ну что ж… Жизнь иногда такие фертеля выкидывает, что и фантасту не приснится…
![]() |
|
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 31.10.2007
Сообщений: 103
|
![]()
Ну так в чем проблема, хранишь все записи только на форме, а при записи документа, после получения ID и записи главной таблицы сохрагяешь все подчиненные записи уже с известным ID главной таблицы.
Последний раз редактировалось AlexandrSid; 26.05.2008 в 09:23. |
![]() |
![]() |
![]() |
#10 |
Форумчанин
Регистрация: 04.03.2007
Сообщений: 615
|
![]()
Paul Hindenburg
я что то не пойму, что значит не сформирован ID? вы когда создаёте документ, то у этого документа есть номер, этот номер и есть id (генератор) для всего тела документа а когда второй пользователь в этот же момент будет создавать документ, то у него генератор будет на +1 больше, соответственно и номер документа будет на +1 больше... что здесь сложного? или я чего то не понимаю? |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Открытие новой формы в VB | byte916 | Помощь студентам | 1 | 04.03.2008 19:10 |
TSQLConnection и FireBird | Abercrombie | БД в Delphi | 5 | 12.02.2008 14:11 |
Создание новой записи | Gerox | БД в Delphi | 3 | 30.12.2007 14:22 |
Проблема с новой формой | Ellita | Общие вопросы Delphi | 11 | 06.09.2007 17:14 |
округление в Firebird | shurik_7866 | БД в Delphi | 0 | 05.07.2007 11:10 |