Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2006.09.10;
Скачать: [xml.tar.bz2];

Вниз

Затруднение при подчинении 2-х таблиц (DBExpress)   Найти похожие ветки 

 
drashka ©   (2006-07-07 15:23) [0]

Такая ситуация, есть 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" я нигде не писал :)


 
Desdechado ©   (2006-07-07 15:34) [1]

> И вообще "where" я нигде не писал
И зря, ибо мастер-детальная связка только через это и делается (хоть вручную, хоть автоматически).
Букварь почитай, это почти везде описывается. Может, на других компонентах, но идеи везде одинаковые.

> select * from FIRMS , Sotr order by nazv_firm
Это вообще глупость, ибо получишь декартово произведение, т.е. к каждой строке из первой таблицы будет добавлена в выборке каждая строка второй таблицы. Итого: число записей в выборке будет M*N


 
sniknik ©   (2006-07-07 15:37) [2]

> Затем пишу в SimpleDataSet1.CommandText
> следующее ...
у SimpleDataSet разве есть CommandText?


 
drashka ©   (2006-07-07 15:46) [3]


> Букварь почитай, это почти везде описывается. Может, на
> других компонентах, но идеи везде одинаковые.

Есть книжка, часто читаю, сейчас она открыта на нужной странице. Но все таки не получилось. Там много примеров, не выходит. Пробовал в различных комбинациях. Поэтому и прошу помочь.
Полагаю, надо писать в запросе что-то вроде "where FirmId=Nazv_firm", но в каком из SimpleDataSet, не пойму.
Если не затруднит напишите полный запрос для обоих SimpleDataSet.


 
drashka ©   (2006-07-07 15:48) [4]


> у SimpleDataSet разве есть CommandText?

Прошу прощения, опечатка.
на самом деле ----> SimpleDataSet1.DataSet.CommandText


 
drashka ©   (2006-07-07 16:03) [5]

И еще, в любой комбинации запросов, с "where" или без, формируется сообщение " Token unknown- line 2, char 14 where "  "... что такое, никак не пойму....



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2006.09.10;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.042 c
2-1156153657
Itoixxx
2006-08-21 13:47
2006.09.10
checkbox


2-1156229307
UMU
2006-08-22 10:48
2006.09.10
DBGrid и DBLookUpComboBox


2-1156237255
GTAID
2006-08-22 13:00
2006.09.10
вызов программы через нажатие ctrl+shift+G


1-1153915757
DelphiLexx
2006-07-26 16:09
2006.09.10
Скопировать один TreeView в другой


1-1153906243
SDA
2006-07-26 13:30
2006.09.10
по VirtualTreeView





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский