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

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

Вернуться   Форум программистов > C/C++ программирование > C/C++ Базы данных
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.09.2017, 01:56   #1
vadimius
Новичок
Джуниор
 
Регистрация: 25.02.2007
Сообщений: 1
По умолчанию Выбор таблицы при вводе данных в базу

База данных ACCESS.
Cхема на рисунке.
imghttp://www.programmersforum.ru/attachment.php?attachmentid=89355&s tc=1&d=1504392726/img
Таблицы: Наблюдатели, Птицы, Встречи, Поведение и 4-е таблицы вариантов поведения. Вообщем Наблюдатель встречает объект и по его поведению данные о нем заносятся в одну из четырех таблиц. Через таблицу Поведение - привязаны данные Встреч ко всем 4-м вариантам поведения по принципу многие-ко-многим. Никак не могу решить проблему: при вводе данных для одного варианта поведения - требуется ввод данных и для остальных 3-х. Как в ACCESS-е можно реализовать этот выбор - так чтобы вводить данные только для одной выбранной таблицы?
Ниже код реализующий ввод данных с вариантом поведения - таблица Observations .. при котором вылетает ошибка: .. для обеспечения целостности данных необходимо наличие связанной записи в таблице Migrations. В примере подключены только 2-е из 4-х таблиц.
Некоторые пояснения к коду:
adotb1->Birds - Объекты
adotb2->Watchers - Наблюдатели
adotb3->Meets - Встречи
adotb4->Behaviors - Поведение
adotb5->Observations - ПростоеПоведение
adotb6->Migrations - МиграционноеПоведение
//---------------------кнопка Добавить-----------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
adotb1->Append();
adotb2->Append();
adotb3->Append();
adotb4->Append();
adotb5->Append();
//adotb6->Append();
}
//------------------------кнопкаПрименить---------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
TLocateOptions SearchOptions;
if(adotb1->Locate("BName", DBComboBox1->Text, SearchOptions<<loPartialKey<<loCase Insensitive) == true)
{
adotb3->FieldByName("ID_bird")->AsInteger = adotb1->RecNo;
}else
{
adotb1->FindLast();
adotb3->FieldByName("ID_bird")->AsInteger = adotb1->RecNo + 1;
}
if(adotb2->Locate("WName", DBComboBox2->Text, SearchOptions<<loPartialKey<<loCase Insensitive) == true)
{
adotb3->FieldByName("ID_watcher")->AsInteger = adotb2->RecNo;
}else
{
adotb2->FindLast();
adotb3->FieldByName("ID_watcher")->AsInteger = adotb2->RecNo + 1;
}

if(adotb3->Modified == true)
adotb3->Post();
if(adotb5->Modified == true)
adotb5->Post();

adotb3->FindLast();
adotb4->FieldByName("ID_meet")->AsInteger = adotb3->RecNo;
adotb5->FindLast();
adotb4->FieldByName("ID_observation")->AsInteger = adotb5->RecNo;
//adotb4->FieldByName("ID_migration")->AsInteger = 0;
if(adotb4->Modified == true)
adotb4->Post();
Изображения
Тип файла: jpg pic1.jpg (46.7 Кб, 140 просмотров)
vadimius вне форума Ответить с цитированием
Старый 10.04.2019, 14:48   #2
actmart
Новичок
Джуниор
 
Регистрация: 10.04.2019
Сообщений: 1
По умолчанию

ясно
Товары для дома и семьи
actmart вне форума Ответить с цитированием
Старый 10.04.2019, 14:58   #3
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,532
По умолчанию

Цитата:
при котором вылетает ошибка: .. для обеспечения целостности данных необходимо наличие связанной записи в таблице Migrations.
Цитата:
Код:
adotb3->FieldByName("ID_watcher")->AsInteger = adotb2->RecNo + 1;
http://www.programmersforum.ru/showp...16&postcount=2
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Автоматический выбор из списка значений combobox при ручном вводе с клавиатуры Настя Белова Microsoft Office Excel 3 14.05.2014 17:35
Включить button при вводе данных Damik Общие вопросы Delphi 4 11.02.2013 22:48
преобразование таблицы в базу данных drollig Microsoft Office Excel 3 17.02.2012 04:01
Как включить выбор домена при вводе аккаунта? Stilet Операционные системы общие вопросы 2 18.08.2008 08:40
преобразование массивов при вводе данных greenkat Microsoft Office Excel 4 28.02.2008 19:21