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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.09.2011, 16:26   #1
Антон91
Новичок
Джуниор
 
Регистрация: 20.09.2011
Сообщений: 1
По умолчанию Access 2003 и Delphi 7

скажите пожалуйста как примерно делать эту задачу (Разработать приложение для отображения записей базы данных, состоящей из двух таблиц со связью 1:М )
Антон91 вне форума Ответить с цитированием
Старый 20.09.2011, 16:34   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Создать приложение, в нем форму. Использовать компоненты ADOQuery или ADOTable для связи с базой и DBGreed для визуализации информации
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 20.09.2011, 17:56   #3
Lesha
Форумчанин
 
Аватар для Lesha
 
Регистрация: 30.01.2009
Сообщений: 418
По умолчанию

имхо adoquery и запрос на выборку из 2 таблиц
Lesha вне форума Ответить с цитированием
Старый 20.09.2011, 19:29   #4
Surgeon
Форумчанин
 
Регистрация: 04.10.2007
Сообщений: 106
По умолчанию

Цитата:
Сообщение от Антон91 Посмотреть сообщение
скажите пожалуйста как примерно делать эту задачу (Разработать приложение для отображения записей базы данных, состоящей из двух таблиц со связью 1:М )
Создать таблицы можно конечно и программно во время выполнения программы, но проще создать в самом Access файл, там создать таблицы нужной структуры.
Затем проект дельфи - форму для компонентов отображения данных (DBGrid, DBEdit etc.). Затем добавить модуль данных (не ещё форму а именно DataModule). В этот модуль положить ADOConnection, задать ConnectionString, где указать нужный файл mdb, лучше отключить LoginPrompt. Для обращения к таблицам использовать ADODataSet.
Это универсальный компонент, в справке дельфи его рекомендуют использовать как вместо ADOTable, так и ADOQuery. У него есть свойство CommandText - если там указано имя таблицы- то он работает как таблица, если SQL запрос - то соответствено как запрос. Кроме того в ADO если не ошибаюсь все запросы - "живые" (вроде такой термин), т.е. пишется запрос на выборку, а на добавление/удаление/редактирование генерятся внутри компонента.
Создание нужной связи средствами SQL, т.е. запрос с явным (INNER JOIN) или неявным связыванием (WHERE). Связь созданная в схеме данных Access в дельфи насколько знаю не воспринимается.

Цитата:
Сообщение от Аватар Посмотреть сообщение
и DBGreed для визуализации информации
Смешно получилось :), жадная сетка :)
Все не так плохо, как вам кажется, на самом деле все гораздо хуже.
http://delphiworld.narod.ru/dw.html - 5000 статей!!! удобный поиск, оффлайн сборник, рекомендую всем
Surgeon вне форума Ответить с цитированием
Старый 21.09.2011, 06:41   #5
Lesha
Форумчанин
 
Аватар для Lesha
 
Регистрация: 30.01.2009
Сообщений: 418
По умолчанию

Код:
Связь созданная в схеме данных Access в дельфи насколько знаю не воспринимается.
а вот и нет. связь воспринимается самой базой а не delphi. И при попытке какихто действий которые нарушат эту связь, access пошлет программе исключение, в отказе выполнения действий.
Как пример удалить запись из главной связанной таблицы, когда в подчиненной есть еще связанные данные.
Lesha вне форума Ответить с цитированием
Старый 21.09.2011, 18:33   #6
Surgeon
Форумчанин
 
Регистрация: 04.10.2007
Сообщений: 106
По умолчанию

Цитата:
Сообщение от Lesha Посмотреть сообщение
Код:
Связь созданная в схеме данных Access в дельфи насколько знаю не воспринимается.
а вот и нет. связь воспринимается самой базой а не delphi. И при попытке какихто действий которые нарушат эту связь, access пошлет программе исключение, в отказе выполнения действий.
Как пример удалить запись из главной связанной таблицы, когда в подчиненной есть еще связанные данные.
Вполне возможно. Пытался это сделать когда только делал первые проекты, там косяков и без нарушения целостности данных хватало. Правда с той поры всю бизнес-логику делаю на стороне клиента.
Все не так плохо, как вам кажется, на самом деле все гораздо хуже.
http://delphiworld.narod.ru/dw.html - 5000 статей!!! удобный поиск, оффлайн сборник, рекомендую всем
Surgeon вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с MS Access 2003 namburol Microsoft Office Access 5 03.06.2011 15:24
Как подключить бд MS Access 2003 без установки MS Access 2003. ShaevMV БД в Delphi 1 15.09.2010 14:19
MS Access 2003 Demaaan Microsoft Office Access 0 25.01.2010 19:36
Есть БД на Access 2.0, нужно открыть в Access 2003 Spirit_33 Microsoft Office Access 1 23.07.2009 07:59