![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Затруднение при подчинении 2-х таблиц (DBExpress) [D7, IB5.x]
drashka © (2006-07-07 15:23:00)Такая ситуация, есть 2 таблицы:
одна FIRMS , содержит список фирм со всеми реквизитами. Индекс по названию фирмы(Nazv_Firm).
Есть вторая, SOTR, содержащая список сотрудников. Содержит так же название фирмы(FIRM_id).
Задача проста, при выборе из таблицы 1 необходимой фирмы, во второй появляется список сотрудников.
Так вот, реализуется все с помощью тенологии DBExpress.
Подключение осуществляется компонентом SQLConnection.
Управление таблицей Firms с помощью SimpleDataSet1. Второй таблицей SimpleDataSet2.
DataSource1 ссылается на SimpleDataSet1, для последующего отображения данных в форме.
DataSource2, в свою очередь, на SimpleDataSet2.
В свойствах MasterSource, компонента SimpleDataSet2, ссылка на DataSource1.
Затем пишу в SimpleDataSet1.CommandText
следующее
"select *
from FIRMS , Sotr
order by nazv_firm"
В свойствах SimpleDataSet2.CommandText тоже самое.
Подчиняю таблицы поставив SimpleDataSet2.MasterFields=Firm_Id ->Nazv_Firm
При редактировании данные кое-как отображаются, но проект не запускается" Token unknown- line 2, char 14 where ' "
Подскажите, пожалуста, в чем ошибка. И вообще "where" я нигде не писал :)
drashka (2006-07-07 16:03:00) [1]И еще, в любой комбинации запросов, с "where" или без, формируется сообщение " Token unknown- line 2, char 14 where ' "... что такое, никак не пойму....
drashka (2006-07-07 15:48:00) [2]
> у SimpleDataSet разве есть CommandText?
Прошу прощения, опечатка.
на самом деле ----> SimpleDataSet1.DataSet.CommandText
drashka (2006-07-07 15:46:00) [3]
> Букварь почитай, это почти везде описывается. Может, на
> других компонентах, но идеи везде одинаковые.
Есть книжка, часто читаю, сейчас она открыта на нужной странице. Но все таки не получилось. Там много примеров, не выходит. Пробовал в различных комбинациях. Поэтому и прошу помочь.
Полагаю, надо писать в запросе что-то вроде "where FirmId=Nazv_firm", но в каком из SimpleDataSet, не пойму.
Если не затруднит напишите полный запрос для обоих SimpleDataSet.
sniknik (2006-07-07 15:37:00) [4]> Затем пишу в SimpleDataSet1.CommandText
> следующее ...
у SimpleDataSet разве есть CommandText?
Desdechado (2006-07-07 15:34:00) [5]> И вообще "where" я нигде не писал
И зря, ибо мастер-детальная связка только через это и делается (хоть вручную, хоть автоматически).
Букварь почитай, это почти везде описывается. Может, на других компонентах, но идеи везде одинаковые.
> select * from FIRMS , Sotr order by nazv_firm
Это вообще глупость, ибо получишь декартово произведение, т.е. к каждой строке из первой таблицы будет добавлена в выборке каждая строка второй таблицы. Итого: число записей в выборке будет M*N