Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Программирование под Windows > C++ Builder
Перезагрузить страницу Как заполнить 3 таблицы одной строкой
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
Nill Nill вне форума
Новичок
 
Сообщений: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 29.05.2006
По умолчанию Как заполнить 3 таблицы одной строкой - 29.05.2006, 15:44

Имеется 3 таблицы: 1) Firma (поля: ID_firma(первичный ключ), nazv_f, ID_rekv_fR(внешний ключ), ID_adresA(внешний ключ) )
2) Adres (поля:ID_adres(первичный ключ), tel, e_mail.......и т.д.)
3) Rekv_F(поля:ID_rekv_f(первичный ключ), inn.....и т.д.)
Таблицы созданы в microsoft sql server.
Оболочка создается на Builder c++ .
В компоненте Query в свойстве SCL пишу запрос:
Код:
SELECT *
FROM Firma, Adres, Rekv_F
WHERE Firma.ID_adresA=Adres.ID_adres
              AND Firma.ID_rekv_fR=Rekv_f.ID_rekv_f
вывожу все это дело на экран, создаю 2 кнопки добавить и сохранить.
добавить:
Код:
void __fastcall TForm7::Button1Click(TObject *Sender)
{
    DataModule2->ADOQuery5->Insert();    
}
сохранить:
void __fastcall TForm7::Button2Click(TObject *Sender)
{
DataModule2->ADOQuery5->Edit();
DataModule2->ADOQuery5->FieldByName("ID_adresA")->AsString=DataModule2->ADOQuery5->FieldByName("ID_adres")->AsString;
DataModule2->ADOQuery5->FieldByName("ID_rekv_fR")->AsString=DataModule2->ADOQuery5->FieldByName("ID_rekv_f")->AsString;
DataModule2->ADOQuery5->Post();
DataModule2->ADOQuery5->Refresh();
}
пишет ошибку что "Обновление столбца, который не допускает наличие Null, на значение Null невозможно"
Почему? ведь поля ID_rekv_f и ID_adres счетчики!
мне нужно чтоб заполнялись все 3 таблицы.
тема в том что когда заполняешь табл например адрес: я пишу там тел и т.д а ID_adres присваивается автоматически, и то что присвоилось мне нужно занести в табл фирма в поле ID_adresA (Не вручную!)

вот и не доходит
Ответить с цитированием
  (#2 (permalink)) Старый
FataLL FataLL вне форума
Member
 
Аватар для FataLL
 
Сообщений: 1,783
Сказал(а) спасибо: 2
Поблагодарили 25 раз(а) в 25 сообщениях
Регистрация: 04.11.2004
По умолчанию 30.05.2006, 16:54

По-моему, тут всё в корне неверно. Во-первых, если уж вставляешь значения полей, то нельзя присваивать значения счетчикам (autoincrement-полям). Во-вторых, Edit, Insert, Post с Query - это что-то вообще супер, что у меня в голове не укладывается.

И вообще я думаю, что автоматически заполнить все связные таблицы нереально. Только вручную, явными добавлениями. Если кто-то опровергнет, буду только рад.
Ответить с цитированием
  (#3 (permalink)) Старый
FataLL FataLL вне форума
Member
 
Аватар для FataLL
 
Сообщений: 1,783
Сказал(а) спасибо: 2
Поблагодарили 25 раз(а) в 25 сообщениях
Регистрация: 04.11.2004
По умолчанию 30.05.2006, 16:54

По-моему, тут всё в корне неверно. Во-первых, если уж вставляешь значения полей, то нельзя присваивать значения счетчикам (autoincrement-полям). Во-вторых, Edit, Insert, Post с Query - это что-то вообще супер, что у меня в голове не укладывается.

И вообще я думаю, что автоматически заполнить все связные таблицы нереально. Только вручную, явными добавлениями. Если кто-то опровергнет, буду только рад.
Ответить с цитированием
  (#4 (permalink)) Старый
Nill Nill вне форума
Новичок
 
Сообщений: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 29.05.2006
По умолчанию 31.05.2006, 10:44

А зря не укладывается..... для одной таблицы все отлично добавляется и сохраняется, даже в моем случае в 2 из 3 табл. заполняются, и третья бы заполнилась еслиб я не ограничила ID_adresA и ID_rekv_fR not null.
Ответить с цитированием
  (#5 (permalink)) Старый
Nill Nill вне форума
Новичок
 
Сообщений: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 29.05.2006
По умолчанию 31.05.2006, 10:44

А зря не укладывается..... для одной таблицы все отлично добавляется и сохраняется, даже в моем случае в 2 из 3 табл. заполняются, и третья бы заполнилась еслиб я не ограничила ID_adresA и ID_rekv_fR not null.
Ответить с цитированием
Ads.
  (#6 (permalink)) Старый
Alexiski Alexiski на форуме
Любитель давать советы
 
Сообщений: 4,269
Сказал(а) спасибо: 27
Поблагодарили 54 раз(а) в 54 сообщениях
Регистрация: 16.10.2005
По умолчанию 31.05.2006, 11:41

Насколько я знаю, в ADO динамическое обновление запроса перестает работать именно при переходе от одной таблицы к нескольким. Лично у меня даже сообщение такого смысла появлялось.

Почему бы не заменить набором INSERT ?
Ответить с цитированием
  (#7 (permalink)) Старый
Alexiski Alexiski на форуме
Любитель давать советы
 
Сообщений: 4,269
Сказал(а) спасибо: 27
Поблагодарили 54 раз(а) в 54 сообщениях
Регистрация: 16.10.2005
По умолчанию 31.05.2006, 11:41

Насколько я знаю, в ADO динамическое обновление запроса перестает работать именно при переходе от одной таблицы к нескольким. Лично у меня даже сообщение такого смысла появлялось.

Почему бы не заменить набором INSERT ?
Ответить с цитированием
  (#8 (permalink)) Старый
Gedeon Gedeon вне форума
Member
 
Сообщений: 631
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 24.06.2003
По умолчанию 31.05.2006, 14:15

1. Надо выбирать в запрос все первичные ключи, но делать их невидимыми
2. Хорошим тоном считается показ дополнительной формы для добавления записи и поледующий инсерт в нужные таюлицы.
Ответить с цитированием
  (#9 (permalink)) Старый
Gedeon Gedeon вне форума
Member
 
Сообщений: 631
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 24.06.2003
По умолчанию 31.05.2006, 14:15

1. Надо выбирать в запрос все первичные ключи, но делать их невидимыми
2. Хорошим тоном считается показ дополнительной формы для добавления записи и поледующий инсерт в нужные таюлицы.
Ответить с цитированием
  (#10 (permalink)) Старый
Nill Nill вне форума
Новичок
 
Сообщений: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 29.05.2006
По умолчанию 01.06.2006, 11:39

Цитата:
Originally posted by Gedeon
[b]1. Надо выбирать в запрос все первичные ключи, но делать их невидимыми
2. Хорошим тоном считается показ дополнительной формы для добавления записи и поледующий инсерт в нужные таюлицы.
Все это есть, правда в запросе я указала *, поменяю на название полей.
Ответить с цитированием
  (#11 (permalink)) Старый
Nill Nill вне форума
Новичок
 
Сообщений: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 29.05.2006
По умолчанию 01.06.2006, 11:39

Цитата:
Originally posted by Gedeon
[b]1. Надо выбирать в запрос все первичные ключи, но делать их невидимыми
2. Хорошим тоном считается показ дополнительной формы для добавления записи и поледующий инсерт в нужные таюлицы.
Все это есть, правда в запросе я указала *, поменяю на название полей.
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Репликация одной таблицы Heal PostgreSQL 0 28.11.2011 15:44
2 таблицы одной базы (вопрос) Jay_D PHP 5 24.07.2011 18:50
Перемещение данных из одной ячейки таблицы в другую. mastero444ek Delphi 3 16.06.2011 16:09
Выборка записей из одной таблицы не существующих в другой OJIR Delphi 8 05.12.2007 09:16
Перевод данных из одной таблицы в другую в Exсel imported_AREN Вопросы начинающих программистов 3 18.10.2006 03:46
Перетаскивание данных из одной таблицы в другую Крысёныш C++ Builder 4 09.01.2006 04:21
Сложение полей одной таблицы Dimson C++ Builder 2 18.10.2005 07:05
Сумма полей А+Б из одной таблицы Interbase udima Другие СУБД 2 19.07.2005 02:30
Калькулятор в одной строкой Sane]{ Visual Basic 2 04.07.2005 01:45
Как сделать, чтобы загружать константы сразу во все элементы одной строкой Poker С/С++ 4 22.06.2005 16:14
Word как заполнить эти таблицы из Воrland C++ Builder v.6 nata2005 C++ Builder 1 04.06.2005 21:38
Как в TStringGrid заранее в Delphi заполнить ячейку строкой lexey Delphi 5 26.10.2004 14:04



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов