|
3 / 3 / 1
Регистрация: 14.12.2010
Сообщений: 36
|
|
База данных как объект13.01.2011, 12:32. Показов 1609. Ответов 15
Метки нет (Все метки)
Здравствуйте снова. Заранее извиняюсь если не в ту ветку. Вообщем пишу на С++ Builder'e программу для работы с базами. Задача в следующем - представить нужные элементы БД в виде объектов. Нужно сделать что-то типа ORM. Т.е. пользователь выбирает БД, выбирает таблицу, выбирает поле и вводит значение этого поля. Далее программа должна вытащить из базы всю нужную структуру (связи) и связанные данные и записать в структуру. И дальше программа уже будет работать с этой структурой, а не с базой данных. Проблема в том что никак не могу спроектировать нормальный вид структуры для хранения связей и данных. Вероятно даже это должны быть две связанные структуры... не знаю. Может у вас есть какие-нибудь мысли по поводу как она должна выглядеть, какие в ней/них должны быть поля, методы...? Заранее спасибо! =)
0
|
|
| 13.01.2011, 12:32 | |
|
Ответы с готовыми решениями:
15
Как называется база данных в C++ Builder
|
|
61 / 60 / 9
Регистрация: 13.01.2009
Сообщений: 322
|
|||
| 13.01.2011, 14:35 | |||
|
Там из вопрса я понял что ты немного противоречишь себе, ты либо пиши программу для работы со структурами либо для работы с БД, работай с этими данными, результат после обработки отправляешь субд. Добавлено через 16 минут Материал из википедии: Использование реляционной базы данных для хранения объектно-ориентированных данных приводит к семантическому провалу, заставляя программистов писать программное обеспечение, которое должно уметь как обрабатывать данные в объектно-ориентированном виде, так и уметь сохранить эти данные в реляционной форме. Эта постоянная необходимость в преобразовании между двумя разными формами данных не только сильно снижает производительность, но и создает трудности для программистов, так как обе формы данных накладывают ограничения друг на друга. Системы управления реляционными базами данных показывают хорошую производительность на глобальных запросах, которые затрагивают большой участок базы данных, но объектно-ориентированный доступ более эффективен при работе с малыми объёмами данных, так как это позволяет сократить семантический провал между объектной и реляционной формами данных. ты один пишешь такую крутую прогу?
0
|
|||
|
3 / 3 / 1
Регистрация: 14.12.2010
Сообщений: 36
|
||||||
| 13.01.2011, 14:51 [ТС] | ||||||
|
Нене... возможно Вы меня не так поняли. Нет противоречий! Мне нужно работать с базой, но предварительно перегоняем все, что надо в объект! И в итоге я работаю именно с объектом (не знаю структура/класс - один фиг по сути), в котором будут хранится данные и связи. Ну, например, один из вариантов такой:
Добавлено через 2 минуты Да я пишу один.
0
|
||||||
|
61 / 60 / 9
Регистрация: 13.01.2009
Сообщений: 322
|
||
| 13.01.2011, 15:11 | ||
|
Сказал примерно щас так," молекула, бактерия, человек, по сути одно и тоже"
0
|
||
|
3 / 3 / 1
Регистрация: 14.12.2010
Сообщений: 36
|
|
| 13.01.2011, 15:17 [ТС] | |
|
Не цепляйтесь к словам, пожалуйстa! =) Я имел ввиду что разница между структурой и классом не такая уж и большая (насколько я знаю - разница между ними только в модификаторах доступа, установленных по умолчанию) и в данном случае без разницы что использовать!
0
|
|
|
61 / 60 / 9
Регистрация: 13.01.2009
Сообщений: 322
|
|
| 13.01.2011, 15:20 | |
|
даже низнаю чем тебе помоч, опиши задачу по подробнее, ну как на экзаменах здают.
0
|
|
|
3 / 3 / 1
Регистрация: 14.12.2010
Сообщений: 36
|
|
| 13.01.2011, 21:02 [ТС] | |
|
А что именно непонятно? Задача подробно описана в сообщениях 1 и 3. Есть БД. Есть пользователь, который выбирает таблицу из этой БД, выбирает поле и вводит значение этого поля. Нужно взять из БД все данные удовлетворяющие данному условию. Затем мы для этой таблицы смотрим ее связи и вытаскиваем удовлетворяющие условию данные из связанных таблиц. Эти данные нужно хранить в памяти в каком-либо удобном виде. Мне кажется удобнее всего использовать struct. И вся дальнейшая работа с этими данными уже должна происходить через этот struct. Проблема в том, что я не могу понять как должен выглядеть этот самый struct! Пример того, что я хочу получить я привел в сообщении 3, но мне он не нравится. Понятен смысл задачи?
0
|
|
|
Почетный модератор
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
|
|
| 13.01.2011, 23:50 | |
|
BlackStranger, а можно вопрос зачем, если это уже давно реализовано в классах, наследующих TDataSet, если уж так надо, то объекты этих классов поместите в структуру или класс, как вам уже удобнее... а вообще структура БД можно получить sql-запросами, просто надо почитать мануал по конкретной субд
0
|
|
|
3 / 3 / 1
Регистрация: 14.12.2010
Сообщений: 36
|
|||||||
| 14.01.2011, 12:47 [ТС] | |||||||
|
Нет, структуру самой БД получить не проблема.
Добавлено через 5 часов 12 минут Вообщем не знаю... пока остановился на таком варианте. Создаем свое n-арное дерево (или юзаем TTreeView) и в его узлы кидаем struct'ы такого вида:
0
|
|||||||
|
Почетный модератор
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
|
|
| 14.01.2011, 13:28 | |
|
BlackStranger, вы хотите сотворить подобие пакетов по работе с базами? просто непонятно, зачем вам такое городить, да и дерево связей звучит слегка сомнительно
0
|
|
|
3 / 3 / 1
Регистрация: 14.12.2010
Сообщений: 36
|
|
| 14.01.2011, 14:54 [ТС] | |
|
Да на самом деле я понимаю, что тут у меня уже бред пошел =)
Просто надо работать с базой как с объектом. Получили нужные данные из базы, записали в память. Все. Базу больше не трогаем.
0
|
|
|
61 / 60 / 9
Регистрация: 13.01.2009
Сообщений: 322
|
||
| 14.01.2011, 15:29 | ||
|
0
|
||
|
3 / 3 / 1
Регистрация: 14.12.2010
Сообщений: 36
|
|
| 14.01.2011, 15:41 [ТС] | |
|
AlexSt, знаете есть такое слово "надо". Ну если мне нужно именно так сделать, что я поделаю! =)
Добавлено через 1 минуту В базе около 500 таблиц, но не только из-за этого я так делаю. Просто так нужно.
0
|
|
|
61 / 60 / 9
Регистрация: 13.01.2009
Сообщений: 322
|
||
| 14.01.2011, 17:33 | ||
|
а программировать нужно правильно. Логика она такая чтука, либо она есть либо её нет. ![]() Больше ничем непомагу, так как не выполнял такие задачи. Добавлено через 1 час 47 минут Хотел бы узнать итог решения проблеммы, отпиши если несложно, как справился и тп. Самому интересно просто, ниразу не писал "толстый клиент" для работы с БД.
0
|
||
|
3 / 3 / 1
Регистрация: 14.12.2010
Сообщений: 36
|
|
| 14.01.2011, 19:18 [ТС] | |
|
Окей, отпишусь =)
0
|
|
|
3 / 3 / 1
Регистрация: 14.12.2010
Сообщений: 36
|
||||||
| 24.01.2011, 11:18 [ТС] | ||||||
|
Вообщем, вышеобозначенная проблема была решена созданием двух связанных структур, которые имеют следующий вид:
Сильно не критикуйте =)
0
|
||||||
| 24.01.2011, 11:18 | |
|
Помогаю со студенческими работами здесь
16
Подсобите примерами - база данных без базы данных Обновление невозможно. База данных или объект доступны только для чтения Обновление базы и ошибка: Обновление невозможно. База данных или объект доступны только для чтения.
Как подключиться к базе данных на Wpf. База данных Sql Server Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам
Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|