Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
2287 / 1603 / 400
Регистрация: 26.06.2017
Сообщений: 4,753
Записей в блоге: 1

Считать связи таблиц при открытии базы OleDb

06.06.2019, 14:19. Показов 1687. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день.

Подскажите каким образом считать связи (отношения) между таблицами базы.
В MSDN много пишут о создании связей программно, а про загрузку из источника ничего не нашёл, может плохо искал.

Таблица newTableName объекта DB (DataSet) заполняется так:
VB.NET
1
2
3
4
yAdapter.SelectCommand = command 'command - сформированный объект DbCommand
yAdapter.MissingSchemaAction = MissingSchemaAction.AddWithKey
yAdapter.FillSchema(DB, SchemaType.Mapped, newTableName)
yAdapter.Fill(DB, newTableName)
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.06.2019, 14:19
Ответы с готовыми решениями:

Не отображается кириллица при открытии файла Excel через OleDb
Привет всем! У меня есть вот такой код для открытия Excel-файла: connectionString = "Provider=Microsoft.ACE.OLEDB.12.0; Data...

Связи таблиц базы данных
Всем доброго времени суток! У меня проблема - я запутался с созданием новых таблиц и полей со связью в них. Есть УЖЕ ЗАПОЛНЕННАЯ таблица...

Можно ли и как считать связи с базы данных между таблицами
Помогите пожалуйста ответить на вопрос, можно ли считать(загрузить) связи между таблицами с базы данных Sql Server

14
2287 / 1603 / 400
Регистрация: 26.06.2017
Сообщений: 4,753
Записей в блоге: 1
08.06.2019, 08:00  [ТС]
Ау-у-у.
0
1741 / 1654 / 167
Регистрация: 25.07.2015
Сообщений: 2,716
08.06.2019, 14:43
Uswer, гляньте здесь.
Возможно поможет решить вашу задачу

Добавлено через 1 час 35 минут

Не по теме:

Uswer,настоятельно рекомендую - скачайте в инете книгу
"Программирование на Microsoft ADO.NET 2.0" Сеппа Д.
Очень подробно с примерами описаны все механизмы ADO.NET
Для работы с данными практически "настольная книга".

2
08.06.2019, 14:59

Не по теме:

есть еще Microsoft ADO.NET от того же автора 2003 г. выпуска

0
 Аватар для XIST
1962 / 1072 / 148
Регистрация: 01.10.2009
Сообщений: 3,616
Записей в блоге: 1
08.06.2019, 20:25
Uswer, можно вопрос зачем?
Работа с данными, в правильном варианте заключается в выборке связанных таблиц, да есть и технология связей датасетов, но это скорре для понимания работы ADO
0
2287 / 1603 / 400
Регистрация: 26.06.2017
Сообщений: 4,753
Записей в блоге: 1
08.06.2019, 20:35  [ТС]
Ребята, про создание связей (Relations) программно я в курсе. Теперь и про создание связей непосредственно в запросе данных тоже. У меня же на входе файл Access, в котором все связи таблиц уже указаны (схема данных), я не понимаю как их считать. За литературу большой сенкс, почитаю, правда для решения текущей задачи времени мало.
0
 Аватар для XIST
1962 / 1072 / 148
Регистрация: 01.10.2009
Сообщений: 3,616
Записей в блоге: 1
08.06.2019, 20:38
Цитата Сообщение от Uswer Посмотреть сообщение
Ребята, про создание связей (Relations) программно я в курсе. Теперь и про создание связей непосредственно в запросе данных тоже. У меня же на входе файл Access, в котором все связи таблиц уже указаны (схема данных)
ну есть схема, известны связи, SQL. честно еще больше не понятно
0
2287 / 1603 / 400
Регистрация: 26.06.2017
Сообщений: 4,753
Записей в блоге: 1
08.06.2019, 21:10  [ТС]
XIST, всё достаточно просто, база данных постоянно меняется (данные добавляются, изменяются, удаляются), изменение данных производится при помощи той программы, которую я пишу. Но и сама структура базы данных может меняться (добавляться столбцы в таблицах, появляться новые таблицы и связи между таблицами). И что мне при каждом изменении структуры переписывать код встраивая новые запросы (или добавляя связи программно)? Или я чего-то не догоняю, и можно это обойти правильным универсальным SQL-запросом данных?
0
 Аватар для XIST
1962 / 1072 / 148
Регистрация: 01.10.2009
Сообщений: 3,616
Записей в блоге: 1
08.06.2019, 21:43
Цитата Сообщение от Uswer Посмотреть сообщение
сама структура базы данных может меняться (добавляться столбцы в таблицах, появляться новые таблицы и связи между таблицами). И что мне при каждом изменении структуры переписывать код встраивая новые запросы (или добавляя связи программно)?
если я понял правильно, то придется при таком случаи и переписывать релашионшипы в датасетах при каждом изменении, т.к. изменение схемы данных конечно будет влиять и на sql ина связи датасетов, или я не понял
0
2287 / 1603 / 400
Регистрация: 26.06.2017
Сообщений: 4,753
Записей в блоге: 1
08.06.2019, 21:52  [ТС]
Дополню. В настоящий момент обработка базы данных проста как молоток: считываются все таблицы, настраиваются связи таблиц, для изменения любой таблицы в программе предоставляется универсальный интерфейс на основе DataGridView (форма с типовыми контролами). В случае, если текущая таблица имеет связь с другой, то предлагается обработка связей (в зависимости от операции в исходной таблице). Всё бы ничего, но вот шаг №2 (настройка связей) вызывает затруднения при изменении структуры БД.

Да, забыл главное сказать, структура базы изменяется при помощи Accessа
0
1741 / 1654 / 167
Регистрация: 25.07.2015
Сообщений: 2,716
08.06.2019, 22:37
Цитата Сообщение от Uswer Посмотреть сообщение
то предлагается обработка связей (в зависимости от операции в исходной таблице)
Расшифруйте, что подразумевается под обработкой связей .
Вы динамически хотите менять связи между таблицами или что ?
И про это
Цитата Сообщение от Uswer Посмотреть сообщение
структура базы изменяется при помощи Accessа
хотелось бы поподробнее.
0
4709 / 3662 / 857
Регистрация: 02.02.2013
Сообщений: 3,518
Записей в блоге: 2
08.06.2019, 22:53
Цитата Сообщение от Uswer Посмотреть сообщение
Всё бы ничего, но вот шаг №2 (настройка связей) вызывает затруднения при изменении структуры БД.
М.б. для этих целей использовать объектную модель Access (https://msdn.microsoft.com/VBA... -reference) через Microsoft.Office.Interop.Access, раз уж Access точно присутствует.
0
2287 / 1603 / 400
Регистрация: 26.06.2017
Сообщений: 4,753
Записей в блоге: 1
09.06.2019, 08:51  [ТС]
Цитата Сообщение от Kulma Посмотреть сообщение
Расшифруйте, что подразумевается под обработкой связей .
Например, если удаляется запись в одной таблице, а в другой таблице есть связь с этой записью, предлагается или выполняется по умолчанию обнуление ссылочной ячейки. Еще пример, тоже удаление записи, которая содержит связи с др. таблицами, то удаляем и связанные данные.
Цитата Сообщение от Kulma Посмотреть сообщение
базы изменяется при помощи Accessа, хотелось бы поподробнее.
В Access создаются таблицы, корректируется схема данных, а наполнение БД делается из вне, т.е. моей прогой. Предполагая следующий вопрос скажу, что данные некоторых таблиц представляются в программе в древовидном виде, поэтому связи таблиц предельно важны.
0
259 / 200 / 49
Регистрация: 18.12.2015
Сообщений: 416
09.06.2019, 09:27
Лучший ответ Сообщение было отмечено Uswer как решение

Решение

Uswer, не ваш случай?
Нет сейчас под рукой access базы чтобы проверить.
1
2287 / 1603 / 400
Регистрация: 26.06.2017
Сообщений: 4,753
Записей в блоге: 1
09.06.2019, 10:02  [ТС]
Jungl, оно самое
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.06.2019, 10:02
Помогаю со студенческими работами здесь

Как считать список таблиц базы данных ?
... из кода VB.NET Заранее благодарен

При открытии базы данных FoxPro в приложение Delphi возникает ошибка драйвера внешней базы данных (8961)
При открытии базы данных FoxPro в приложение Delphi возникает ошибка драйвера внешней базы данных (8961) Код программы такой unit...

Ошибка при открытии базы
Всем, добрый день. Помогите решить проблему. База данных ***.accdr лежит на местном сервере. И не понятно с какой периодичностью...

При восстановлении базы данных dle не приходят сообщения при связи с администрацией
При восстановлении базы данных с сайта со своей информацией на только поставленный сайт не приходят сообщения на e-mail при связи с...

Заполнение таблиц при связи один к одному
Объясните мне пожааалуйста! :) База данных издательства: Есть первая таблица "План-проспект": ключевое поле "Код...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru