Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
 Аватар для Kaktuz
7 / 7 / 4
Регистрация: 28.05.2012
Сообщений: 169

Управление БД и таблицами

25.08.2015, 19:40. Показов 765. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Уважаемые знатоки Delphi & Access. Дабы упростить себе жизнь, хочу изначально проконсультироваться. Можно ли будет реализовать мой замысел и будет ли это нормально работать.
Первая и главная таблица будет содержать текст (путь к файлу). Каждый файл (строка таблицы), должна быть связь с личной таблицей, таблицей только для этого файла. Файлов будет много, соответственно и таблиц тоже. На рисунке сделал примерный обзор как я это себе представляю. Где-то на англ. сайте подобное было и поэтому заинтересовало.


При запуске проверяем наличие файла БД. Если его нет, создаем.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
if not FileExists(WorkingFolder + 'db.mdb') then
  begin
    s := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + WorkingFolder + 'db.mdb;';
    try
      db := CreateOleObject('ADOX.Catalog');
      db.Create(s);
      db := NULL;
    except on e: Exception do
      ShowMessage(e.message);
    end;
  end;
  ADOConnection1.ConnectionString := s;
  ADOConnection1.Connected := True;
Далее будет запущена функция которая построить дерево каталогов и файлов и выведет структуру в TreeView (такая есть, работает). Совместно запускаться функция которая должна:
- Проверить наличие таблицы `FileList`, если нету, создать её и по ходу дела записывать туда пути всех файлов (естественно которые там еще не записаны).
Ну и после создания дерева файлов можно выбрать любой файл и загрузить его таблицу.
Delphi
1
2
ADOCommand1.CommandText := 'CREATE TABLE FilePNG (id INT(11), file TEXT(255) );';
ADOCommand1.Execute;
Вообщем так как раньше не приходилось работать с большим количеством файлов и данных, в таблицы не вникал, а сейчас очень нужно и тупик. Поделитесь знаниями, ссылками, опытом.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.08.2015, 19:40
Ответы с готовыми решениями:

Управление таблицами DBNavigator'ом
У меня есть две таблицы. К програме они подключены с пом компонентов Table и DataSource, и надо сделать так чтобы обеими можно было бы...

Управление несколькими таблицами одним bindingNavigator
В общем-то есть аналогичная тема (https://www.cyberforum.ru/ado-net/thread525826.html), но что-то она не благополучна окончена. В...

Наладить связи между практически одинаковыми таблицами таблицами
Помогите пожалуйста со следующей затыкой. Выбираю "Схема данных". Там открыты три таблицы. Одна материнская (откуда идет номер модели)...

8
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
25.08.2015, 20:12
Цитата Сообщение от Kaktuz Посмотреть сообщение
Дабы упростить себе жизнь
Плодя ран-тайм таблицу за таблицей в своей базе ты не то что упростишь - усложнишь жизнь .. И себе и тем кому вероятно суждено будет разбираться в этом хозяйстве..

Достаточно всего двух таблиц - главной и подчиненной, - связанных в отношении "многие к одному".

Подчиненная снабжается полем вторичного ключа (file_id), по значению которого каждая группа записей этой таблицы однозначно сопоставляется с одной конкретной записью в главной таблице, имеющей в поле первичного ключа (id) то же самое значение.

Для ускорения поиска, сортировки и фильтрации в различных наборах данных, формируемых по запросам к этим таблицам, а так же для автоматического контроля уникальности значений перв.ключа и межтабличной ссылочной целостности поле id снабжается уникальным индексом, а поле file_id - неуникальным индексом. Ограничения ссылочной целостности могут быть сформированы единожды и поддерживаться самой СУБД как в дизайн-, так и в ран-тайм.

Все это подробнейшим образом разжевано в любом мало-мальски приличном букваре по принципам построения и функционирования реляционных баз данных.
0
 Аватар для Kaktuz
7 / 7 / 4
Регистрация: 28.05.2012
Сообщений: 169
26.08.2015, 14:52  [ТС]
Вот только там не сказано как это реализовать в Delphi без наличия Access. Во всяком случае я такого не встречал.
0
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
26.08.2015, 15:05
Что ты подразумеваешь под "Access" - приложение MS Access или базу данных в формате MS Access ?
0
 Аватар для Kaktuz
7 / 7 / 4
Регистрация: 28.05.2012
Сообщений: 169
26.08.2015, 15:36  [ТС]
База данных Access. В целом я могу создать БД в Access 2003, две таблицы, связать их, но дальнейшая работа должна проходить через саму программу. Добавлять новые записи в таблицу #1 если появится новый файл в каталоге который не записан в этой таблице. Связать его с таблицей #2 для добавление новых данных (заметок). И все это выводить, обрабатывать, показывать, возможность редактирования.
Кликните здесь для просмотра всего текста
Через ini файл все это сделано, работает, может проще увеличить в исходнике размер буфера. Сам с таблицами явно не осилю разобраться.
0
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
26.08.2015, 15:50
Цитата Сообщение от Kaktuz Посмотреть сообщение
База данных Access
Ну и в чем проблема ?
ADOX же ты взялся использовать ? Так и продолжай его использовать на всю катушку !

Пример создания различных объектов метаданных в БД Access с использованием ADOX
0
 Аватар для Kaktuz
7 / 7 / 4
Регистрация: 28.05.2012
Сообщений: 169
27.08.2015, 21:13  [ТС]
не поддается мне access. может кто желает помочь кто в этом знается?
0
пофигист широкого профиля
4769 / 3204 / 862
Регистрация: 15.07.2013
Сообщений: 18,612
28.08.2015, 01:06
Цитата Сообщение от Kaktuz Посмотреть сообщение
не поддается мне access. может кто желает помочь кто в этом знается?

Не по теме:

В разделе фриланс желающих найдётся, хоть отбавляй.

0
 Аватар для Kaktuz
7 / 7 / 4
Регистрация: 28.05.2012
Сообщений: 169
29.08.2015, 16:18  [ТС]
Уточнить хочу. В таблице текст ограничен до 255 символов. А Memo не виден в таблице Delphi. Это решаемо?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.08.2015, 16:18
Помогаю со студенческими работами здесь

Вёрстка таблицами ( разрыв между таблицами в ie)
Добрый день, сверстал одну страницу для акции таблицами. В Google Chrome корректно отображается, а вот в ie между таблицами...

Реализовать алгоритм работы планировщика. Управление виртуальной памятью. Управление файловой системой
Разработка программы менеджера памяти. Свопинг. Сегментная схема организации памяти. Управление виртуальной памятью. Глобальное и локальное...

Движение, вращение, управление движением, управление вращением фигуры
Написать программу, выполняющую четыре операции над графическим объектом("фигурой"):движение,вращение,управление движением,управление...

Перенести управление стрелками на управление WASD
Мне нужно чтобы в игре вместо стрелок управление осуществлялось WASD и при этом сами WASD не нажимались в игре. Для блокировки нажатия...

Чем отличается 1с 8.0 Управление персоналом от 1с 8.1 Управление персоналом?
Чем отличается 1с 8.0 Управление персоналом от 1с 8.1 Управление персоналом? Где это посмотреть)


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru