Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.06.2015, 06:08   #1
kijuc
Новичок
Джуниор
 
Регистрация: 03.06.2015
Сообщений: 2
По умолчанию

Есть две таблицы. Связанны через MasterSource и т.д.
На форме есть DBEdit-ы, в которые вводятся данные для двух таблиц.
Когда я пытаюсь запостить, то что я заполнил, прога ругается на то, что мол в главной таблице значение ключа равно -1(скрин внизу) (когда вставляется пустая запись, это значение появляется временно и после поста, становится все ок).

QMC - главная.
QCPUS_ATTR - подчиненная.

Заранее
Код:
fdm.QMC.Append;
fdm.QCPUS_ATTR.Append;
Код:
procedure Tfmc.cxBtn3Click(Sender: TObject);
begin
    fdm.QMC.Post;
    fdm.QCPUS_ATTR.Post;
end;
Да. При вставке строки в подчиненную таблицу, строка в главной таблице, уже должна существовать.

И пока, как вариант делаю заранее:
Код:
fdm.QMC.Append;
    fdm.QMC.Post;
    fdm.QMC.Edit;
А при отмене редактирования, удаляю эту строку, но мне кажется, что это не очень правильно. Типо индексы тратятся и все такое. Может есть какой-то другой способ заполнять данные сразу в две таблицы? Вариант с использованием обычных Edit-ов не подходит.


Может свойство есть, которым можно запретить вводить данные сразу с DBEdit? Например я такой заполняю DBEdit-ы и когда тыкаю на кнопку, происходит что-то вроде...
Код:
fdm.QMC.Post;
//Активация какого-то свойства, которое разрешает занесение данных в QCPUS_ATTR.
fdm.QCPUS_ATTR.Post;

Последний раз редактировалось Stilet; 03.06.2015 в 07:01.
kijuc вне форума Ответить с цитированием
Старый 03.06.2015, 07:08   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
Активация какого-то свойства
Лямбда-Карямбда-Трах-Тибидох
Цитата:
Связанны через MasterSource
Значит надо обязательно учесть тот момент, когда вводятся данные на основе главной таблицы. Значит нужно либо вводить последовательно: т.е. Ввод в главную, пост главной, а только потом ввод в подчиненную. Либо вводить на основании данных, выбранных из главной. Дабы ID внешнего ключа брался из выбранной строки в главной таблице.
А волшебства в твоем случае не будет. Такое только в Хогвардсе возможно, а за его пределами Министерство магии запрещает

Вообще я бы на твоем месте, если бы делал побыстрячку, да еще и не зная что там происходит, просто сделал две формы-карточки. Открывающиеся модально. Первая - данные в главной таблице. Закрыл, данные сохранились, сразу открывается вторая - для второстепенной.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Добавление записи в подчиненную таблицу salernitana БД в Delphi 8 03.04.2015 17:48
Скрыть подчиненную форму Ol_Bak Microsoft Office Access 0 31.10.2014 15:47
Запись данных в таблицу из DBedit Scorpuha БД в Delphi 12 04.10.2014 18:20
запись из DBEdit в таблицу MySQL KaimNotark БД в Delphi 7 22.01.2010 19:36
Хитрая выборка в подчиненную форму smoky Microsoft Office Access 5 19.05.2008 15:42