![]() |
|
|
![]()
|
|
| george1980 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 17.9.2006 Репутация: нет Всего: нет |
В ADOQuery нет свойства Mastersource , как связать две таблицы по двум полям с помощью sql.
Поля в двух таблицах одинаковые. В одной таблице содержаться основные данные людей (ФИО, ул, дом, кв), а во второй другие данные (например: данные человека). Действие должно быть такое: например пользователь щёлкает на записи в таб.1 , а данные этой записи отображаются в табл.2, то есть фильтруются. |
|||
|
||||
| AlanFree |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 59 Регистрация: 22.9.2006 Репутация: нет Всего: нет |
если я тебя правильно понял то для этой цели можно использовать Left Join если тебе нужно по подробней приведи имена табциц и полей, я напишу тебе запрос
|
|||
|
||||
| SergeBS |
|
||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1111 Регистрация: 10.6.2005 Где: Владимир Репутация: 11 Всего: 22 |
george1980,
1.
Достаточно, чтобы сделать вывод - структура БД - неправильная. 2. Правила:
Какая БД? |
||||
|
|||||
| george1980 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 17.9.2006 Репутация: нет Всего: нет |
Извеняюсь !!!
База DBase (*.dbf), способ доступа ADO. Описываю таблицы: Имеются две таблицы F1 и F2 с одинаковыми полями по которым надо сделать связь по полям, py, nkar. В первой таблице список людей (с уникальным py и nkar) а во второй например список товаров которые они приобрели. И ещё, нужно ли делать индексы по этим полям ? |
|||
|
||||
| Rodman |
|
|||
|
CIO ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 6144 Регистрация: 7.5.2006 Где: Ukraine ⇛ Kyiv ci ty Репутация: 22 Всего: 122 |
попробуй так |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
а DataSource есть? В данном случае DSSpecif.DataSet := adodsGoodsSpecifiedSelect; Rodman, да, это хороший вариант, но в этом случае запрос не редактиуемый, а если пользователь хочет редактировать данные непосредственно в таблице? Добавлено @ 16:59 В событии OnDataChange компоненты TDataSource, который присоединён к MasterDataSet, пишем код код переоткрытия DetailDataSet с передачей детальному датасету MasterID.
Добавлено @ 17:03 извини, что не в тему но я бы использовал DBE, мало того не просто BDE, а BDE+Paradox. Скорость работы программы возростёт на несколько порядков. Это доказано на практике. Vit проводил сравнительные тесты BDE и ADO. BDE выиграл с отрывом в 2000 раз. Как тебе, а? Это сообщение отредактировал(а) Akella - 1.11.2006, 17:00 |
|||
|
||||
| SergeBS |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1111 Регистрация: 10.6.2005 Где: Владимир Репутация: 11 Всего: 22 |
Akella,
Без уточнения что сравнивалось и как - это только слова. Поскольку я, например, работая с DBF через ADO(исключительно ради эксперимента!) настройками ADO изменил время отработки операции с 0.5 до 10 сек. А потом ее правильно оформил и получил 0.06 сек. george1980, Читай [email=http://forum.vingrad.ru/index.php?showtopic=92925]тут[/email] Бросай ADO/BDE. Бери TDbf/Halcyon и т.п. |
|||
|
||||
| george1980 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 17.9.2006 Репутация: нет Всего: нет |
SELECT F1.* , F2.*
FROM F1 INNER JOIN F2 ON ((F1.py=F2.py)and(F1.nkar=F2.nkar)) Попробовал. Чёт вообще комп виснуть стал, а код не обрабатывается. Пришлось снимать задачу в диспетчере задач. У меня на компе SQL сервер не стоит, может из за этого некоторые команды не обрабатываются. |
|||
|
||||
| ТоляМБА |
|
|||
![]() Котэ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1607 Регистрация: 15.12.2004 Репутация: 3 Всего: 252 |
||||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
george1980, а какой SQL сервер ты имеешь ввиду?
|
|||
|
||||
| george1980 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 17.9.2006 Репутация: нет Всего: нет |
mySQL. Если его ставиш, то всё работает намного быстрей и нету многих глюков.
Да просто подскажите как можно связать две таблицы по двум полям. Это делается с помощью SQL запросов или есть какой нибудь другой способ ? Как например в BDE , ставиш TTable в нём указываеш MasterSource и связываеш поля. |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
george1980, а какое отношение имеет MySQL к *.dbf (dBase)???
Это сообщение отредактировал(а) Akella - 2.11.2006, 16:04 |
|||
|
||||
| george1980 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 17.9.2006 Репутация: нет Всего: нет |
Ваза данных в файлах *.dbf.
Так что связать значит никак ? |
|||
|
||||
![]()
|
| Правила форума "Delphi: Базы данных и репортинг" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |