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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.12.2013, 18:29   #1
Abay19941308
Пользователь
 
Регистрация: 29.10.2012
Сообщений: 64
По умолчанию

У меня есть 2 таблицы "Документы" и "Поставка", на последней форма ввода значения полей.
В форме ввода есть 5 DBedit в которые ввожу значения полей. И надо сделать так чтобы при нажатии на кнопку "OK" в таблице документ создавалась строка с со значениями введенными в DBedit.

Код:
Dm.Postavka.Post;
DM.Dokument.Connection:=DM.ADOConnection1;
DM.Dokument.Insert;
DM.Dokument.Fieldvalues['Номер_документа']:=
strtoint(Dobavlenie_Polei_Postavka.dbedit_2.Text);
DM.Dokument.post;
Когда нажимаю на кнопку "ОК" то выходит ошибка
Невозможно добавление или изменение записи. Для обеспечения целостности данных необходимо наличие связной записи в таблице "Документ".
То есть он должен создать строку в таблице документ и после чего внести туда данные. Вот только не знаю как это сделать. Помогите пожалуйста!!!

Если можно с помощью запроса то как это сделать?

Последний раз редактировалось Stilet; 04.12.2013 в 12:23.
Abay19941308 вне форума Ответить с цитированием
Старый 03.12.2013, 20:22   #2
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,022
По умолчанию

а чего не понятно в ошибке?
eval вне форума Ответить с цитированием
Старый 03.12.2013, 20:35   #3
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,515
По умолчанию

Цитата:
Для обеспечения целостности данных необходимо наличие связной записи в таблице "Документ".
не соблюден принцип целостности данных.
сначала добавляем документ, потом все его составляющие.

Код:
document.insert;
document.post;
postavka.insert;
posttavka.post;
postavka.insert;
postavka.post
;
Цитата:
DM.Dokument.Fieldvalues['Номер_документа']:=
4 страницы почему нельзя в качестве ключа использовать номер документа.
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 03.12.2013, 21:08   #4
Abay19941308
Пользователь
 
Регистрация: 29.10.2012
Сообщений: 64
По умолчанию

Тоесть я должен написать так
document.insert;
DM.Dokument.Fieldvalues['Номер_документа']:= edit1.text;
document.post;
document.insert;
DM.Dokument.Fieldvalues['Штрих=код']:= edit2.text;
document.post;
и т.д.

Он у меня и используется в качестве ключа!!!
Abay19941308 вне форума Ответить с цитированием
Старый 04.12.2013, 10:56   #5
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,515
По умолчанию

Цитата:
То есть я должен написать так
НЕТ.
Сначала надо заполнить главную таблицу (видимо это Document)
потом зная ключ (НЕ НОМЕР ДОКУМЕНТА!!!) заполнить подчиненную (стало быть это postavka).

подчиненная это та в которой есть foreign key (FK) к primary key(PK) главной таблицы.

Цитата:
Он у меня и используется в качестве ключа!!!
4 страницы почему нельзя в качестве ключа использовать номер документа.

P.S. если телепатия дала сбой и расставила таблицы (где главная, где подчиненная) наоборот, то и делать надо все наоборот.
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 04.12.2013 в 10:59.
evg_m вне форума Ответить с цитированием
Старый 04.12.2013, 15:56   #6
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

Цитата:
Сообщение от Abay19941308 Посмотреть сообщение
У меня есть 2 таблицы "Документы" и "Поставка", на последней форма ввода значения полей.
В форме ввода есть 5 DBedit в которые ввожу значения полей. И надо сделать так чтобы при нажатии на кнопку "OK" в таблице документ создавалась строка с со значениями введенными в DBedit.

Код:
Dm.Postavka.Post;
DM.Dokument.Connection:=DM.ADOConnection1;
DM.Dokument.Insert;
DM.Dokument.Fieldvalues['Номер_документа']:=
strtoint(Dobavlenie_Polei_Postavka.dbedit_2.Text);
DM.Dokument.post;
Когда нажимаю на кнопку "ОК" то выходит ошибка
Невозможно добавление или изменение записи. Для обеспечения целостности данных необходимо наличие связной записи в таблице "Документ".
То есть он должен создать строку в таблице документ и после чего внести туда данные. Вот только не знаю как это сделать. Помогите пожалуйста!!!

Если можно с помощью запроса то как это сделать?
У DBedit есть свойства DataSource и DataField смотрите пример
Вложения
Тип файла: rar DBEdit.rar (332.5 Кб, 13 просмотров)
xxbesoxx вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передача значений из одной формы в другую coollife Общие вопросы .NET 1 14.02.2013 18:43
MS SQL SERVER 2005 копирование таблицы из ОДНОЙ БД В другую или перенести все строки из одной таблицы в другую reihtmonbern БД в Delphi 4 17.07.2012 23:25
поиск замена значений из одной таблицы в другую Sofd Microsoft Office Excel 10 06.07.2011 11:36
Перенос значений из одной таблицы в другую ЕСЛИ+ВПР? 804040 Microsoft Office Excel 2 05.05.2010 14:38
Передача данных из одной таблицы в другую, при выборе одной ячейки MickMick Microsoft Office Excel 6 06.10.2008 13:57