C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Запись в несколько таблиц с QUERY, Запись в несколько таблиц с QUERY
** vadoo
Отправлено: 10.01.2004, 21:47


Не зарегистрирован







Привет народ!
С помощью QUERY делаю сложный запрос к трём таблицам. Но это только чтение данных, а как записать данные сразу в три таблицы с помощью QUERY? Пишет только в одну табликцу которая выбрана в UPDATESQL
Благодарю за ответ.
Admin
Отправлено: 11.01.2004, 18:28


Владимир

Группа: Администратор
Сообщений: 1190



Бросить на форму еще компонент(ы) Query
и написать в нем(них) нужный(ые) запрос(ы): Update ...

или использовать компонент SQLScript из библиотеки RXLib,
он предназначен для выполнения SQL-скриптов, содержащих
более одного SQL-выражения.

Также, если база данных поддерживает хранимые процедуры
(MS SQL, Oracle, InterBase/FireBird) можно это сделать
с помощью хранимой процедуры (процедур), передав
ей необходимые параметры. (новые значения полей)
** vadoo
Отправлено: 12.01.2004, 20:57


Не зарегистрирован







Спасибо за советы. Попробую помучаться ))
** vadoo
Отправлено: 13.01.2004, 22:26


Не зарегистрирован







Скажите Владимир а как сделать чтобы несколько QUERY управлялись одним набором кнопок навигатора, ведь навигатор связан только с одним DATASOURS?
Благодарю за ответ.
** pasha
Отправлено: 14.01.2004, 11:35


Не зарегистрирован







Я тоже хочу ответить:

Можете перехватывать событие навигатора BeforeAction
и в нем определять, какая кнопка нажата и выполнять для других
таблиц нужные действия:

CODE

void __fastcall TForm1::DBNavigator1BeforeAction(TObject *Sender,
     TNavigateBtn Button)
{
  if(Button == nbNext){
     Table2->Next();
     Table3->Next();
     Table4->Next();
     }
   if(Button == nbPrior){
     Table2->Prior();
     Table3->Prior();
     Table4->Prior();
     }
}


Также вместо навигатора можете бросить на форму кнопки,
(например SpeedButton) — типа свой Навигатор,
и обрабатывать также их нажатие.

------

А неужели эти таблицы между собой никак не связаны ?(master-detail)
Если такая связь существует, то связать их как master-detail
и при навигации по master будет автоматически происходить
перемещение по detail.


Вернуться в Работа с базами данных в C++Builder