Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
0 / 0 / 0
Регистрация: 14.05.2010
Сообщений: 11

MS Access в Delphi

14.10.2010, 16:59. Показов 1960. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток уважаемые коллеги-программисты. У меня возникли некоторые затруднения с БД. Дело в том, что у меня дома около 300 дисков с фильмами. Мне захотелась написать программу на делфи, которая содержала все содержимое на диске, то есть базу данных, в которой хранится количество дисков и их содержимое, то есть фильмы на нем. Это я сделал. Теперь у меня затруднения со 2 базой данных. Я хочу создать 2 базу данных - БД актеров. Информация об актерах - год рождения, национальность и тд. Трудность в тов, что мне нужно связать эти 2 базы, то есть в 1 диске может быть несколько фильмов с 1 актером. На 2 диске может быть только его фильмы. На 3 диске может быть 1 фильм с 2 - 3 актерами одновременно (Неудержимые). Как мне это реализовать. То есть, можно было, например в Делфи в поиске вбить актера - должно вывести инфа о нем, какие фильмы с его участием и где эти фильмы на ходятся. И также наоборот - вбил фильм. Выводиться информация о фильме(бюджет, продюсер) и актеры, которые участвовали на нем? Помогите реализовать
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.10.2010, 16:59
Ответы с готовыми решениями:

SQL-запрос в Delphi и в Access один и тот же, но в Delphi не работает
ри обращение к базе в Access я использую код: with ADOQueryMain do begin Active:=false; SQL.Clear; SQL.Add('SELECT Code,...

Delphi and access
Добрый день господа прогеры! как запустить акцессовское приложение без запроса логина и пароля, при вып. запрашивает логин и пароль как...

Delphi и БД Access
Всем доброго времени суток! Кто может подсказать? Выполняю обращение к таблице через ADOTable, через другие компоненты работать не...

11
1263 / 706 / 62
Регистрация: 21.12.2009
Сообщений: 2,256
14.10.2010, 17:51
Цитата Сообщение от akosh12345 Посмотреть сообщение
базу данных, в которой хранится количество дисков и их содержимое
Полагаю, что в БД хранится не количество дисков, а некий идентификатор диска и название фильма, который на нем хранится

Цитата Сообщение от akosh12345 Посмотреть сообщение
Теперь у меня затруднения со 2 базой данных
У Вас некорректная терминология. Информация в задаче такого рода хранится в одной базе, но в разных таблицах

Цитата Сообщение от akosh12345 Посмотреть сообщение
1 диске может быть несколько фильмов с 1 актером. На 2 диске может быть только его фильмы. На 3 диске может быть 1 фильм с 2 - 3 актерами одновременно (Неудержимые). Как мне это реализовать
Это и реализуется дополнительными таблицами в БД


Цитата Сообщение от akosh12345 Посмотреть сообщение
То есть, можно было, например в Делфи в поиске вбить актера - должно вывести инфа о нем, какие фильмы с его участием и где эти фильмы на ходятся. И также наоборот - вбил фильм. Выводиться информация о фильме(бюджет, продюсер) и актеры, которые участвовали на нем?
После создания таблиц и ввода информации это реализуется так называемыми запросами

Я бы такую задачу реализовал бы в виде следующей совокупности таблиц
DISKS - ТАБЛИЦА дисков с полями
1. IDDISK Код диска (целое число - первичный ключ)
2. NAMEDISK Наименование диска (Например ДИСК 1)

FILMS - ТАБЛИЦА ФИЛЬМОВ
1. IDFILM - Код фильма (целое число - первичный ключ)
2. NAMEFILM - Название фильма

DISKFILM - таблица, задающая расположение фильмов на дисках
1. ID - целое, используемое в качестве первичного ключа
2. IDFILM - код фильма
3. IDDISK - код диска, на котором располагается фильм

Если фильм с кодом 10 расположен на двух дисках с кодами 23 и 24, то в таблице DISKFILM могут появиться записи
1 10 23
2 10 24
то есть, фильм 10 располагается на дисках 23 и 24

Далее таблица актеров ACTERS с полями
1. IDACTER - целочисленный код актера
2. NAMEACTER - фамилия имя актера

И наконец, таблица задающая привязку актеров к фильмам FILMACTERS с полями
1. ID - целое, используемое в качестве первичного ключа
2. IDFILM - код фильма
3. IDACTER - код актера

Например, пусть актер Ефремов с кодом 121 участвует в фильме с кодом 10. И в том же фильме участвует актер Басилашвили с кодом 142. Тогда в таблице FILMACTERS появится такая запись
1 10 121
2 10 142

В совокупности это множество таблиц и есть БД, описывающая Вашу фильмотеку. Только я бы не стал делать ее на акцессе, терпеть его не могу, но это дело вкуса
0
0 / 0 / 0
Регистрация: 14.05.2010
Сообщений: 11
15.10.2010, 15:43  [ТС]
а как вы думаете, где можно было бы легче и затрачиваю как можно больше усилий можно сделать эту фильмотеку?
0
 Аватар для Sergiuz
161 / 159 / 39
Регистрация: 10.10.2010
Сообщений: 461
15.10.2010, 17:19
Цитата Сообщение от akosh12345 Посмотреть сообщение
а как вы думаете, где можно было бы легче и затрачиваю как можно больше усилий можно сделать эту фильмотеку?
С такой постановкой вопроса начни с блокнота
где логика "можно было бы легче" и "затрачиваю как можно больше усилий". По моему результат будет явная Ложь.

Когда закончишь с разбиранием своего вопроса, и поймешь где тут ошибка переходи к следующему.
Изучи какую нить СУБД, лучше firebird, много есть инфы по ней, он прост.
Когда поймешь смысл реляционной БД, можешь переходить к разработке свой БД на фильмотеку.
Когда разработаешь БД, можеш писать и оболочку на Delphi.

Но теперь выплывает вопрос а надо ли все это когда инет и так завален такими программами.
Но если ты хочешь все таки написать ее, рекомендую закачай пару программ по своей тематики, выпиши что понравилось а что нет. Потом составь БД, и начинай оболочку а потом если у тебя что нибудь не получается пиши вопрос ответим.
0
1263 / 706 / 62
Регистрация: 21.12.2009
Сообщений: 2,256
15.10.2010, 20:17
Цитата Сообщение от Sergiuz Посмотреть сообщение
лучше firebird, много есть инфы по ней, он прост
Не соглашусь, что он прост, скорее даступен и бесплатен. Словом "прост" мы как-то принижаем FB

Цитата Сообщение от Sergiuz Посмотреть сообщение
выплывает вопрос а надо ли все это когда инет и так завален такими программами
Вопрос закономерен. Это имеет смысл только в том случае, если есть намерение развивать свои знания и навыки в работе с БД
0
 Аватар для Sergiuz
161 / 159 / 39
Регистрация: 10.10.2010
Сообщений: 461
15.10.2010, 21:17
SAMZ, Думаю FB от моих слов не очень сильно потеряет. А "прост" я имел ввиду что его проще изучить чем PostegeSql или MySql
0
0 / 0 / 0
Регистрация: 14.05.2010
Сообщений: 11
16.10.2010, 07:52  [ТС]
ну конечно же я имел ввиду
а как вы думаете, где можно было бы легче и затрачиваю как можно меньше усилий можно сделать эту фильмотеку?
очень спешил когда печатал это сообщение.
0
 Аватар для Sergiuz
161 / 159 / 39
Регистрация: 10.10.2010
Сообщений: 461
16.10.2010, 14:54
Во круто логику постановки задачи вернули назад.
Теперь осталось понять что значит реляционная БД и последовать совету
SAMZ, в посте с таблицами.
Это просто минимум для твоей задачи.
0
0 / 0 / 0
Регистрация: 14.05.2010
Сообщений: 11
18.10.2010, 20:25  [ТС]
Уважаемые коллеги. Я сделал как вы и советовали. Набрасал пару фильмом и актеров. Теперь я не могу понять как мне сделать так, что при поиске например Тома Круза что бы у меня выводилась Инфа о нем, и о том в каких фильмах он играет и где эти фильмы находятся?
Вложения
Тип файла: rar BD.rar (13.3 Кб, 57 просмотров)
0
0 / 0 / 0
Регистрация: 14.05.2010
Сообщений: 11
18.10.2010, 22:20  [ТС]
Правда я в BD внес изменения. Я вместо того чтобы FILMACTERS и DISTFILMS вбивать ID сделал списочек из таблиц ACTOR DISKS и FILMS. Вроде получилось нормально.
0
 Аватар для Sergiuz
161 / 159 / 39
Регистрация: 10.10.2010
Сообщений: 461
18.10.2010, 23:48
akosh12345, Учите мат часть, в основах (for dummies) Access есть такое как построителй запросов (конструктор)
а если в SQL варианте то ответ на ваш вопрос будет таковым
SQL
1
2
3
SELECT ACTOR.ФИО, FILMS.[Название фильма], DISKS.NameDisk
FROM (FILMS INNER JOIN (ACTOR INNER JOIN FILMACTERS ON ACTOR.ID = FILMACTERS.IDACTER) ON FILMS.ID = FILMACTERS.IDFILM) INNER JOIN (DISKS INNER JOIN DISTFILMS ON DISKS.IDDISK = DISTFILMS.IDDISK) ON FILMS.ID = DISTFILMS.IDFILMS
WHERE (([ФИО]='Tom Cruise/Том Круз'));
1
1263 / 706 / 62
Регистрация: 21.12.2009
Сообщений: 2,256
19.10.2010, 06:17
1. Лазить в Ваш mdb файл не желания ни времени нет
2. Ответ на Ваш вопрос
"как мне сделать так, что при поиске например Тома Круза что бы у меня выводилась Инфа о нем,"
возможен пр условии: Вы даете описание организованных Вами в БД таблиц. Нужны имена таблиц, описание полей (включая их тип). Как минимум информация должна повторять Вашу реализацию моих советов (см мой пост выше)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.10.2010, 06:17
Помогаю со студенческими работами здесь

БД (Access) и Delphi
Помогите пожалуйста с поиском. Есть цена, хочу сделать от и до (типа вводишь в один edit 10, в другой 20 и он в таблице отображает строки в...

Delphi+Access
Добрый день! Есть база в Access, в ней есть 1 запрос. Вопрос: Как в DBGrid1.Fields вставить результат из запроса в Access

Delphi + Access
Помогите!!!! Создаю базу на Access. Хочу, чтобы при выдаче товара со склада на киоск либо клиенту, в поле "количество"...

Delphi and MS Access
Здравствуйте. У меня задание написать программу для работы с базой данных. В ходе написания столкнулась с трудностями. При выборе...

Access и Delphi
Имеется таблица "учащиеся" Access с полями: Класс, Фамилия имя, Результат. Нужно импортировать данные в таблицу "учащиеся" из...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 19.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru