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

Вниз

Связанные поля БД   Найти похожие ветки 

 
Senka   (2002-11-21 09:00) [0]

Подскажите кто нибудь где найти инфу по созданию связанных полей в нескольких таблицах в Database Desktop.
По книжке пробовал чего то не получается, при редактировании связанного поля не открывается вторая таблица привязанная к этому полю.
Спасиба.


 
Anatoly Podgoretsky   (2002-11-21 09:08) [1]

Еще раз прочитать книжкИ и внимательно, потом прочитать хелп, посмотреть примеры в Дельфи.

ЗЫ: Database Desktop этим не занимается


 
s_karm   (2002-11-21 10:51) [2]

Таже проблема, если делать по книжке, в которых есть примеры только для TTable (хотя для всего остального должно быть аналогично), то получаешь вылет по ошибке. не разясняется какие должны быть ключевые поля и тп


 
3JIA9I CyKA   (2002-11-21 10:54) [3]

НичЁ не нонял.


 
MsGuns   (2002-11-21 11:21) [4]

Для привязки двух таблиц отношением Master-Detail должны соблюдаться след.условия:

Поля Master, по которым связь, должны быть или Primary Key или Secondary Index (во втором случае индекс должен быть активным и обеспечивать уникальность)
Поля Detail, по которым связь, должны быть по типу полностью совместимыми с аналог.полями Master, и также ключами или активными уникальными индексами. Кроме того, в этой таблице должен быть по крайней мере еще один ключ, обеспечивающий множественность детальных записей на один мастер-ключ
Отношение один-ко-многим устанавливается в компонентах TTable (MasterSource,MasterFields). Для TQuery механизм привязки несколько отличается.

Пример связки:

1. "InterPr" (Master) - таблица подразделений предприятия
- DepID (Int) - идентификатор подразделения Primary Key
- DepName (Chr) - Наименование подразделения
- DepQuon (Int) - Кол-во работающих в подразделении
... - прочие характеристики подразделения

2. "Personal" (Detail) - таблица - спиочний состав по подр-ям
- DepID (Int) - связка с Мастером Primary Key
- PerID (+) - идентификатор чела Primary Key
- PerName (Chr) - ФИО чела
- DlgID (Int) - Указатель должности из соотв.спр-ка
- PerOklad ($) - Оклад
... - прочие характеристики чела

3. "Family" (Detail-Level 2) - состав семьи
- PerID (Int) - связка с "Personal" Primary Key
- FamID (+) - Уник.Идентификатор члена семьи Prim.Key
- FamFIO (Chr) - ФИО члена семьи
...

При размещении данных детальных таблиц в гридах настоятельно рекомендуется НЕ включать в состав редактируемых (и отображаемых) колонок ключей связки с мастер-таблицей,- при вставке в детал новой записи они автоматически заполняться (в отличие от связок TQuery) нужными значениями

Вообще-то закладывание "жестких" отношений в топологию (структуру и иерархию таблиц) БД не всегда оправдано. Но для локальных БД типа Paradox дает существенный выигрыш при программировании интерфейсов и заметно повышает скорость работы приложений.


 
Senka   (2002-11-21 14:44) [5]

Поясняю:

Я создал две таблицы в DBD7.0
Табл. 1:
№ Абонента. (тип Integer) ключевое поле.
Абонент. (тип Alpha)
№ улицы. (тип Integer) вторичный ключ.

Табл. 2:
№ улицы. (тип Integer) ключевое поле.
Улица. (тип Alpha)

Связал эти таблицы по полю № улицы (оно является вторичным ключом) в окне Table Lookup и сохранил изменения.
И цитирую из книжки "Когда Вы сохраните изменения, при вводе или редактировании поля № улицы в первой таблице DBD будет выводить связанную с этим полем вторую таблицу" - а он не выводит ее.
В чем ошибка? ведь не в генах же :-)))




 
MsGuns   (2002-11-21 17:06) [6]

DBD и BDE это не одно и то же !
Для того, чтобы сработал LookUp в приложении, НЕДОСТАТОЧНО просто указать соотв.опции в DBD. Надо еще настроить соотв.DataSet в проекте. Т.е. создать LookUp-поле (в данном случае <Улица>), связать его по № улицы со справочником, а результат направить в № улицы 1-й таблицы.


 
Senka   (2002-11-21 17:53) [7]

Все парни я в тупике................................
Может кто знает где инфу в инете скачать можно по этим вопросам.


 
MsGuns   (2002-11-21 18:37) [8]

Вся инфа в хэлпах. У тебя что, не установлена контекстная помощь ? Дважды клацаешь на TTable, добавляешь новое поле, определяешь ему Kind=LookUp, и дальше по сценарию с подсказками, если надо. Для хэлпа ищешь строки в Object Inspector с LookUpxxxx (Перед этим наведись на ЛЮБОЕ поле в редакторе полей или в OI), жмешь F1 и "ученье-свет..." 8)



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

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

Наверх




Память: 0.47 MB
Время: 0.008 c
14-28208
delpher_gray
2002-11-13 14:45
2002.12.09
Всем кто занимается заподлостроением (пишет вирусы, трояны и т.п)


4-28348
DDS
2002-10-28 11:05
2002.12.09
Как поставить ассоциацию TXT файлов намою прогу.


3-27864
Calm
2002-11-21 11:22
2002.12.09
Как запустить хранимую процедуру в MS SQL Interprise Manager?


1-27919
Mosh
2002-11-28 15:58
2002.12.09
Как внедрить графические файлы в иксишник??


3-27853
AndrewVolkov
2002-11-20 23:36
2002.12.09
TDbLookupComboBox - обнуление строки???





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский