Связать таблицы в query


связать таблицы в query Программирование от Чертенка.ру | Вопросы по БД

Связывание таблиц средствами SQL/Query

На страницу 1, 2  След.

Связывание таблиц средствами SQL/Query 
Автор: Anonymous 
Добавлено: 17.06.03 11:22 
 
Народ ввсем привет.
Как зделать связь один ко многим используя SQL запрорс и компонент Query (если использовать компонент Table то там этот реалезованно через MasterSource).
P.S. Почену не использую компонент Table? спросите вы, долго над этим думал... и пришел к выводу что Query это круто просто оператотры надо знать и еще Query на много удобнее и функциональнее чем Table.

 
Автор: Anonymous 
Добавлено: 17.06.03 14:40 
 
Создаешь по два Query, DataSource,DbGrid
В первом Query пошешь какой-то запрос, DataSource1 связываешь с Query1. У Query2 в свойстве DataSource указываешь DataSource1, после этого можно в теле запроса2
писать :{любое поле Query1}. DataSource2 связываешь соответственно с Query2. То же самое с гридами первая- с первым датасорчем, вторая-со вторым. Пример:
With query1.sql do
begin
Add('Select id,nom');
Add('from pers');
end;
With query2.sql do
begin
Add('Select ');
Add('from pers2');
Add('where nom=:nom'); //:nom - это поле из первого Query
end;
После того как оба откроешь, причем сперва первый потом второй, в гридах будут наборы данных. Если ты в первом гриде переходишь на другую запись, второй грид автоматом выбирает те записи в соответствие с новым условием.
Такая конструкция называется динамический завпрос.

 
Автор: Anonymous 
Добавлено: 17.06.03 15:25 
 
Пробую.......

 
Автор: Anonymous 
Добавлено: 17.06.03 15:33 
 
Через час я заканчиваю работать, если возникнут вопросы я завтра постараюсь ответить (если смогу)

 
Автор: Anonymous 
Добавлено: 18.06.03 11:17 
 
Спасибо MIN все работает.
PESPEKT Beer

 
Автор: Anonymous 
Добавлено: 18.06.03 12:20 
 
Beer Поздравляю. Я сам новичек, но с этой проблемой сталкивался, поэтому и знаю. От Table я тоже почти отказался, перешел на Query, хотя многие советуют вообще переходить на ADO, и я пока в сомнении.

 
Автор: Gelios 
Добавлено: 19.06.03 8:24 
 
На АДО советую перходить врагам :) а нормальные используют компоненты прямого доступа.

 
Автор: Anonymous 
Добавлено: 10.05.06 17:50 
 
Приветик! Гуляла по Яндексу, и заглянула на ваш сайт...
Нужна помощь по вопросу, давно рассмотренному здесь...
имеется 2 таблицы.
1-я zv с полями Idzv, zvname
2-я izzv с полями Idzv_izzv и Idiz_izzv
необходимо связать эти 2 таблицы отношением 1:m между полями idzv idzv_izzv (собственно, потом нужно будет отношение m:n с добавлением ещё одной таблицы)
Выполняю следущие запросы (так как сказано, что сначала первый, а потом второй, вставляю обработку запросов в функции ButtonClick, и выполняю запросы по очереди)
DBGrid1.DataSource:=DM.DataSource1;
DM.DataSource1.DataSet:=DM.Query1;
DM.Query1.Active:=false;
DM.Query1.SQL.clear;
stroka:=('select from zv');
DM.Query1.SQL.Text:=stroka;
DM.Query1.Active:=true;
DM.Query2.DataSource:=DM.DataSource1;
DBGrid2.DataSource:=DM.DataSource2;
DM.DataSource2.DataSet:=DM.Query2;
DM.Query2.Active:=false;
DM.Query2.SQL.clear;
stroka2:=('select from izzv where Idzv_izzv=Idzv');
DM.Query2.SQL.Text:=stroka2;
DM.Query2.Active:=true;
Но при выполнении 2-го запроса вылезает ошибка invalid field name Idzv.
Программа не видит поле Idzv, находящееся в таблице zv, хотя вроде запросу присвоила DataSource1.
Добавляю во второй запрос таблицу zv, запрос работает, но, естественно, не так, как надо...
Подскажите пожалуйста, может не так поняла, как надо...

 
Автор: DrPass 
Добавлено: 11.05.06 0:06 
 
Пропустила один знак препинания Улыбка
stroka2:=('select from izzv where Idzv_izzv=:Idzv');

 
Автор: dogma 
Добавлено: 11.05.06 3:20 
 
После
stroka2:=('select from izzv where Idzv_izzv=:Idzv');
DM.Query2.SQL.Text:=stroka2;
добавь
DM.Query2.ParamByName('Idzv'):='значение для отбора';

©2002-2007 Чертенок.ру


Источник: http://forum.chertenok.ru/mobile/thread/1290



Рекомендуем посмотреть ещё:


Закрыть ... [X]

Связать по смыслу таблицы - Создание связи между двумя таблицами в Excel Как рисовать пчёлку майю

Связать таблицы в query Связать таблицы в query Связать таблицы в query Связать таблицы в query Связать таблицы в query Связать таблицы в query Связать таблицы в query Связать таблицы в query Связать таблицы в query

Похожие новости