1 Востаннє редагувалося Betterthanyou (01.11.2015 18:25:08)

Тема: MS Access схема даних і SQL запит

Як заповнити таблицю яка зв'язана з іншою зв'язком один до багатьох за допомогою SQL запиту ?

В мене була ідея така

заповнюю першу таблицю

INSERT INTO таблиця1 (id, поле1, поле2, поле_n) VALUES(значення1, значення2, значення_n);

а тепер другу

INSERT INTO таблиця1 (id, поле1, поле2, поле_n, поле_до_якого_прив'язана_таб1 ) VALUES(значення1, значення2, значення_n, id_першої_таблиці );

алей як тоді дізнатися ід першої таблиці ?

ось як це виглядає

Unit4.cpp
тут дані по користувача

AnsiString Query = "INSERT INTO _Customer_(_name_, _surname_, _middle_name_, _cellphone_, _email_, _address_, _postcode_, _city_) VALUES('" + _name_ + "', '" + _surname_ + "', '" + _middle_name_ + "', '" + _cellphone_ + "', '" + _email_ + "', '" + _address_ + "', '" + _postcode_ + "', '" + _city_ + "');";

ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add(Query);
ADOQuery1->ExecSQL();

Unit2.cpp
тут дані про кредити користувача (тобто їх багато)

AnsiString Query = "INSERT INTO _Credit_(_sum_, _time_, _rate_, _commission1_, _commission2_, _scheme_) VALUES(" + S + ", " + n + ", " + M + ", " + RK + ", " + K + ", true);";

ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add(Query);
ADOQuery1->ExecSQL();

в БД є поле id2 в яке я хочу записати id першого поля


http://replace.org.ua/misc.php?action=pun_attachment&item=1039&download=0

Post's attachments

Untitled.png 49.88 kb, 205 downloads since 2015-11-01 

2 Востаннє редагувалося Itari (01.11.2015 20:09:53)

Re: MS Access схема даних і SQL запит

Старий метод:

INSERT INTO таблиця1 (id, поле1, поле2, поле_n) VALUES(значення1, значення2, значення_n);
ADOQuery1->ExecSQL();
...
INSERT INTO таблиця2 (id, поле1, поле2, поле_n, id2 ) 
VALUES(значення1, значення2, значення_n, (select max(id) from таблиця1 ));
ADOQuery1->ExecSQL();

Якшо Акцесс пiдтримуе UDF процедури, то краше зробити це через такую процедуру, запакував запроси до неi.

3

Re: MS Access схема даних і SQL запит

але як тоді дізнатися ід першої таблиці ?

Найпростіше - при створенні запису в 1 таблиці не покладатися на лічильник, що він згенерує значення замість вас, а самому обрати вільне значення ключа і використати його в обидвох запитах.