|
Программирование >> Элементы языков с и с++
Установим связь между таблицами с помощью контекстного меню одной из таблиц- щелкнем мышью на таблице Авторы и откроем ее контекстное меню, где выберем опцию Add (добавить). Откроется список подопций, из которого выберем подопцию Relation (отношение, связь) (рис. 12.12). Появится диалоговое окно для установления связи между таблицами (рис. 12.13). Установление связи мехаду таблицей Авторы и таблицей Книги % Автор t КодАетора Фамилия fH оторыТвЫе, [в Fi,G tDalaO ► I 1 ConTigure... Out 41 Copy r-jst- XI Delete Rename Autosize PreviewData... Щ View Code M Properties <3uery. Relafion., * Column OataSourtM J fij J lb i3 {) My77DataSet В Би6лиотека10а{а5е( - В vp Авторы . @ КодАетора @Имя gbj] Фаиилия □ ijj Книги [*ы! КодАетора ОбычиоеНазвемие (*ь Издательство Новая связь меиаду таблицами Рис. 12.12. Контекстное меню для установления связи между таблицами Результат показан на рис. 12.14. В окне Data Sources видно, что строка с наименованием Книги попала в подчинение к строке с наименованием Авторы. Вспомним, что эти таблицы не являются таблицами БД, а только и.ч отражением в НД приложения. Действительные таблицы в БД так и останутся независимыми. Перетащим мышью таблицу Авторы и таблицу Кингн в форму. Но при этом зацепимся за ту строку с названием Книги, которая после наши.х манипуля-по установлению связей оказалась внутри списка строки Авторы. Если рь откомпилировать приложение и запустить его, то получим результат, [показанный на рис. 12.15 (точно такой же, какой мы получали, когда таблицы 1были связаны между собой еще на этапе их проектирования в MS Access). гНоесли таблицы не связаны внутри БД, можно ли обеспечить их совместную работу в одной форме по вводу данных? Оказывается, что нельзя.
Choose what to create ----------- О Both Relation and Foreign Key Constraint О Foreign Key Constraint Onlv ©Relation Only Update Rule; * aicad * Delete Rule: \ct,-i: Accept/Reject Rite: N7,-11: □ Njsted Relation . Здесь выбираются таблицы, между которыми следует установить связь Здесь выбираются поля, по которым связываются таблицы (надо щелкнуть в поле и появится кнопка для открытия списка noneii) Здесь задается тип устанавливаемой связи: простая связь, либо связь по внешнему ключу, либо по тому и другому признакам Рис. 12.13. Окно для установления связи ме>кду таблицами
в Bn6i MTeKalDale5et -В Аоторы @ КодАетора Фапипия Ut, КодАвтора №1 ОбычиоеНазва * i Jbfl ГодИздания в Би6лиотека10ага5е1 -В 3 Аоторы ЙЗЗ КодАетсзра IM цьД Фаиипия -В 3 Книги R Г2 Книги tt£3 КодАетора 1 ГодЪдания Таблицы на одном уровне. -Связи ме>кду таблицами нет Таблицы на разных уровнях. Связь между таблицами есть
КодАвтора ОбычноеНамамие ГсИэлания f GetOata, Рис. 12.14. Установление связи ме>кду двумя независимыми таблицами
КооАвтора ОбычноеНаэвани Изиательство I Моя семья Свежая мысль Рис. 12.15. Работа несвязанных таблиц в режиме главный-подчиненный
Data Sources d li3 Ij Lfc Вид переноса таблиц - Details. Совместная работа связанных таблиц of е Кое Автора Дарья Обычное Название: [Техника Тай-ши Иааатеяьство. [Hij*Haff литератур * Фамилия Воронова My77PataSe( 1о? БиблиотекаЮа1а5е1 а jJ Авторы 1 ы1 КолАвтора № Иня {dbij Фамилия в jj} Книги Н КолАвтора [ ьЦ ОбычноеНазвание [аы1 Издательство Для кавдого кода автора отражается название его произведения кнопки навигации по строкам Рис. 12.16. Работа двух связанных таблиц, когда они перенесены в форму при выбранной опции Details для каждой таблицы Если посмотрим в h-файл приложения, то увидим, что элементы управляющей линейки с кнопками, обеспечивающие ввод данных, их удааение и т. д., при объявлении формы строятся только для левой таблицы, помещенной в форму. Теперь понятно, почему и при связанных (при проектировании) таблицах одновременная их работа в одной форме не давала результата. Связанность тут ни при чем - просто среда этого не допускает.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |