Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.07.2009, 16:07   #1
Droid
Форумчанин
 
Аватар для Droid
 
Регистрация: 24.04.2008
Сообщений: 440
По умолчанию Связь 2-х таблиц в Delphi

У меня есть 2 таблицы в Delphi, как их связать между собой, чтобы можно было удалять из одной, и из другой тоже удалялось, и при выделении запии в одном DBGrid-e мне в другом показывало к какой записи относится данная строка, В MySQL - Fronte у меня удаляет нормально в Delphi выдает ошибку ---->Безымянный.jpg
пытался так не получается, искал в инете чет тоже не нашел.
Dm.ADOQ_PACid_pacienta.FieldName:=D M.ADOQ_OSid_pacienta.FieldName;
1 старый программист, лучше новых 2-х
Droid вне форума Ответить с цитированием
Старый 04.07.2009, 13:37   #2
Droid
Форумчанин
 
Аватар для Droid
 
Регистрация: 24.04.2008
Сообщений: 440
По умолчанию

Народ как связать 2 DBGrida, между собой, чтобы при выделении 1 записи в 1 DBGrid показывали соответсявующие записи во 2 DBGrid-e ??? Использую компоненты ADOQuery, DataSourse, ADOCommand ппц все перепробовал все, что знаю.
1 старый программист, лучше новых 2-х
Droid вне форума Ответить с цитированием
Старый 04.07.2009, 13:56   #3
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,210
По умолчанию

свяжите таблицы через master detail
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 04.07.2009, 14:01   #4
Evgeniy26
Форумчанин
 
Аватар для Evgeniy26
 
Регистрация: 29.05.2009
Сообщений: 384
По умолчанию

Михаил Фленов -> Библия Delphi -> Глава 14. Delphi и базы данных -> 14.10. Связанные таблицы
Evgeniy26 вне форума Ответить с цитированием
Старый 04.07.2009, 15:19   #5
Droid
Форумчанин
 
Аватар для Droid
 
Регистрация: 24.04.2008
Сообщений: 440
По умолчанию

Цитата:
Сообщение от artemavd Посмотреть сообщение
свяжите таблицы через master detail
У меня в тех компонентах нет MasterFields, я добавил ADODataSet только с каким ADODataSourse его звязывать не пойму чет, там все как то не понятно.
1 старый программист, лучше новых 2-х
Droid вне форума Ответить с цитированием
Старый 04.07.2009, 16:12   #6
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

Если ADODataSet тогда в подчинённом ADODataSet в свойстве DataSource выбирай датасоурс к которому привязана главная таблица, а в запросе добавляеш условие
Код:
where ( <тут подчинённое поле>=:<имя поля в главной таблице>)

Последний раз редактировалось vovk; 04.07.2009 в 16:53.
vovk вне форума Ответить с цитированием
Старый 04.07.2009, 20:20   #7
Droid
Форумчанин
 
Аватар для Droid
 
Регистрация: 24.04.2008
Сообщений: 440
По умолчанию

Цитата:
Сообщение от vovk Посмотреть сообщение
Если ADODataSet тогда в подчинённом ADODataSet в свойстве DataSource выбирай датасоурс к которому привязана главная таблица, а в запросе добавляеш условие
Код:
where ( <тут подчинённое поле>=:<имя поля в главной таблице>)
Код:
DM.ADOQ_OS.Close;
DM.ADOQ_OS.SQL.Clear;
DM.ADOQ_OS.SQL.Text:='SELECT * FROM osnovnoy_soputstvuyhiy_diagnoz osd INNER JOIN pacient pt ON pt.id_pacienta=osd.id_pacienta INNER JOIN diagnoz dz ON dz.id_diagnoza=osd.id_diagnoza WHERE osd.id_pacienta=:idos;';
DM.ADOQ_OS.Parameters.ParamByName('idos').Value:=DM.ADOQ_PACid_pacienta.Value;
DM.ADOQ_OS.Open;
все получилось )))
1 старый программист, лучше новых 2-х
Droid вне форума Ответить с цитированием
Старый 04.07.2009, 20:42   #8
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

можно и так, только использую свойств DataSource (AdoQuery или ADODataSet), достаточно просто добавить датосоурс главной таблицы и написать запрос в свойство (SQL или Commandtext зависит от компонента) и всё, у вас же скорее всего это расположено в DataSource.odatachange датасоурса главной таблицы., Можно кстать запрос написать 1 раз а в действии исползовать только
Код:
DM.ADOQ_OS.Close;
DM.ADOQ_OS.Parameters.ParamByName('idos').Value:=DM.ADOQ_PACid_pacienta.Value;
DM.ADOQ_OS.Open;
причём тут DM.ADOQ_PACid_pacienta.Value; лучше всё таки обращатся к полю DM.ADOQ_PAC.FieldByname('id_pacient a').asstring; ну мне так кажется вообще не люблю задавать филды в конструкторе, мне кажется от этого потом гибкость теряется, а при изменении писать больще, но это моё мнение

Последний раз редактировалось vovk; 04.07.2009 в 20:53.
vovk вне форума Ответить с цитированием
Старый 04.07.2009, 21:43   #9
Droid
Форумчанин
 
Аватар для Droid
 
Регистрация: 24.04.2008
Сообщений: 440
По умолчанию

Цитата:
Сообщение от vovk Посмотреть сообщение
можно и так, только использую свойств DataSource (AdoQuery или ADODataSet), достаточно просто добавить датосоурс главной таблицы и написать запрос в свойство (SQL или Commandtext зависит от компонента) и всё, у вас же скорее всего это расположено в DataSource.odatachange датасоурса главной таблицы., Можно кстать запрос написать 1 раз а в действии исползовать только
Код:
DM.ADOQ_OS.Close;
DM.ADOQ_OS.Parameters.ParamByName('idos').Value:=DM.ADOQ_PACid_pacienta.Value;
DM.ADOQ_OS.Open;
причём тут DM.ADOQ_PACid_pacienta.Value; лучше всё таки обращатся к полю DM.ADOQ_PAC.FieldByname('id_pacient a').asstring; ну мне так кажется вообще не люблю задавать филды в конструкторе, мне кажется от этого потом гибкость теряется, а при изменении писать больще, но это моё мнение
Возможно, у меня туча форм и я в них путаюсь ыыыы.
1 старый программист, лучше новых 2-х
Droid вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Связь таблиц в запросе artemavd БД в Delphi 4 16.06.2009 18:19
Связь таблиц maximorion БД в Delphi 1 22.05.2009 11:30
Связь таблиц в Delphi adinadin111 БД в Delphi 3 10.07.2008 14:50
связь таблиц в локальной БД IGREK БД в Delphi 3 30.06.2008 19:46
Связь таблиц БД kaa БД в Delphi 5 18.09.2007 18:29