Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
kmoiseev
6 / 6 / 1
Регистрация: 04.08.2013
Сообщений: 62
1

Добавление в подчиненную таблицу

25.10.2013, 23:42. Просмотров 1157. Ответов 11
Метки нет (Все метки)

Как добавлять запросом в подчиненную таблицу?

Так добавляю в главную, а как в запрос добавить и подчиненную?

Delphi
1
2
3
4
5
6
7
8
9
10
11
 ADOQuery1.SQL.Clear;
            ADOQuery1.SQL.Add('INSERT INTO [таблица] ([поле _1], [поле _2], [поле _3],[поле _4] )');
            ADOQuery1.SQL.Add('VALUES ( :Param1, :Param2, :Param3, :Param4 )');
            ADOQuery1.Parameters.Refresh;
            ADOQuery1.Parameters[0].Value:=Edit1.Text;
            ADOQuery1.Parameters[1].Value:=Edit2.Text;
            ADOQuery1.Parameters[2].Value:=Edit3.Text;
            ADOQuery1.Parameters[3].Value:=Edit4.Text;
            ADOQuery1.ExecSQL;
            ADOQuery1.SQL.Text := 'SELECT * FROM [таблица]';
            ADOQuery1.Open;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.10.2013, 23:42
Ответы с готовыми решениями:

Добавление записи в подчиненную таблицу БД
Имеются 2 таблицы: главная "планеты" и подчиненная "спутники". В главной...

Добавление данных в подчиненную таблицу
Есть БД в Acces там созданно 3 таблицы. 1 главная. и 2 подчиненные к ней....

Заполнение c DBEdit-ов в главную и подчиненную таблицу
Есть две таблица. Связанные через MasterSource и т.д. На форме есть DBEdit-ы,...

Ошибка при сохранении данных в подчиненную таблицу
День добрый, помогите разобраться с ошибкой. В подчиненную таблицу ввожу...

Добавление записей в таблицу и связанную с ней таблицу, с учётом связи
Имеются 3 таблицы: кабинет id_cab n_cab ...

11
Скандербег
936 / 893 / 296
Регистрация: 07.08.2012
Сообщений: 2,489
26.10.2013, 07:00 2
...а как в запрос добавить и подчиненную?
Никак. Запрос INSERT не предполагает добавление данных в две или более таблиц (синтаксис такой).
Для добавления в другую таблицу необходимо сформировать еще один запрос INSERT.
0
virtual[ity]
157 / 137 / 64
Регистрация: 05.06.2010
Сообщений: 610
26.10.2013, 11:50 3
А как мне в запросе тогда указать, то что подчиненная запись принадлежит такой то записи в главной таблице? Мне нужно как то ключ указать в запросе? Подскажите.
Связь один - ко - многим access
0
Скандербег
936 / 893 / 296
Регистрация: 07.08.2012
Сообщений: 2,489
26.10.2013, 12:15 4
Например, так можно в Аксессе взять значение поля Счетчик только что вставленной строки:
Delphi
1
2
3
4
5
  ADOQuery2.SQL.Text := 'SELECT @@identity as ID';
  ADOQuery2.Open;
  if not ADOQuery2.Eof then
    ID := ADOQuery2['ID'];
  ADOQuery2.Close;
ADOQuery2 не должен быть тем же самым компонентом, который пишет и показывает данные.
0
virtual[ity]
157 / 137 / 64
Регистрация: 05.06.2010
Сообщений: 610
26.10.2013, 13:26 5
А теперь в запросе ID как параметр вставлять?
0
Скандербег
936 / 893 / 296
Регистрация: 07.08.2012
Сообщений: 2,489
26.10.2013, 14:16 6
Что такое "запрос ID" и где в запросе виден параметр?
0
virtual[ity]
157 / 137 / 64
Регистрация: 05.06.2010
Сообщений: 610
26.10.2013, 17:39 7
Delphi
1
2
3
4
5
6
ID := ADOQuery2['ID'];
 
ADOQuery2.SQL.Add('INSERT INTO [таблица2] ([поле _id] )');
            ADOQuery2.SQL.Add('VALUES ( :Param1 )');
 ADOQuery2.Parameters.Refresh;
ADOQuery2.Parameters[0].Value:=ID;
В правильном направлении?
0
Скандербег
936 / 893 / 296
Регистрация: 07.08.2012
Сообщений: 2,489
26.10.2013, 19:04 8
Неясно из этого что за поле такое "поле_ID" и почему не пишутся другие поля в эту таблицу.
Параметр здесь особо не нужен. А .Parameters.Refresh вообще ни к месту
0
virtual[ity]
157 / 137 / 64
Регистрация: 05.06.2010
Сообщений: 610
26.10.2013, 19:22 9
Не стал другие поля вписывать так как с телефона не очень все удобно). Поле_id - это поле с которым связана главная таблица, как пример просто написал.
0
Скандербег
936 / 893 / 296
Регистрация: 07.08.2012
Сообщений: 2,489
26.10.2013, 19:39 10
Тогда:
Delphi
1
2
3
  ADOQuery2.SQL.Text := 'INSERT INTO [таблица2] ([поле _id], <другие поля>) VALUES ('+
    IntToStr(Id)+', '+<значения для других полей>+')';
  ADOQuery2.ExecSQL;
Если среди полей есть те, которые имеют тип "дата/время", то именно для них нужно применить параметры.
1
AOTM
0 / 0 / 0
Регистрация: 20.10.2016
Сообщений: 8
10.07.2017, 13:23 11
Мне нужна помощь, использую ttable, имеются 2 таблицы, связь один ко многим, при добавлении записи в подчиненную таблицу пишет "field can be modified", как добавить запись так, чтобы она принадлежала уже какой либо существующей записи в главной таблице?на этапе конструирования первичный ключ в таблицах автоинкрементный
0
qwertehok
2299 / 2203 / 602
Регистрация: 29.08.2013
Сообщений: 14,725
10.07.2017, 13:32 12
Цитата Сообщение от AOTM Посмотреть сообщение
Мне нужна помощь
и поэтому ты пишешь в тему 2013 года?

Цитата Сообщение от AOTM Посмотреть сообщение
как добавить запись так, чтобы она принадлежала уже какой либо существующей записи в главной таблице?
нужно что бы в подчиненной таблице было ключевое поле с ключом, который есть в главной

а вообще - показывай код, да еще лучше создай свою тему
0
10.07.2017, 13:32
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.07.2017, 13:32

Добавление в таблицу БД
У меня на форме 1-edit 1-button, ADOConnection,ADOQuery,DataSources и dbgrid,...

Добавление в таблицу
Пишу курсовую по БД,на достаточно простой кнопке запоролся и не могу понять где...

Добавление в таблицу
Такая вот ситуация:Есть база данных,в ней табличка &quot;rec&quot; в ней 3...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru