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

Связи между таблицами ADOTable

28.03.2017, 01:56. Показов 4773. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, работаю с таблицами подключенными из Access, пытаюсь установить такие же связи для отображения данных но постоянно выскакивает такая ошибка: Аргументы имеют неверный тип, выходят за пределы допустимого диапазона или вступают в конфликт друг с другом. Не понимаю почему такая ошибка появляется, т.к. в Access все связывается
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.03.2017, 01:56
Ответы с готовыми решениями:

Связи между таблицами
Имеется две таблицы связанные друг с другом. В acceses связь работает, а вот в dbgrid в столбце ингредиенты вместо названия продукта...

Связи между таблицами
Помогите, никак не могу понять в чем проблема и почему не ставятся связи.

Установить связи между таблицами
Здравствуйте. Проектирую базу данных "Успеваемость студентов" в Delphi 7. Таблицы (тип Paradox 7) для базы созданы в Database Desktop. ...

13
 Аватар для Пытливый
3763 / 2267 / 705
Регистрация: 29.05.2013
Сообщений: 9,622
28.03.2017, 02:00
Не надо пытаться переносить модель связей в Дельфи, а надо просто в Акцесе сделать запрос, куда поместить все ваши таблицы, организовать связь по ключевым столбцам между ними и вот уже полученный запрос в виде текста (есть там такой режим) вы можете использовать в Дельфи.
1
пофигист широкого профиля
4769 / 3204 / 862
Регистрация: 15.07.2013
Сообщений: 18,609
28.03.2017, 02:12
Код в студию.

Добавлено через 5 минут
Ну и к сообщению Пытливый +10500
Акцесс как дурная попытка переплюнуть Парадокс страдает теми же самыми проблемами, что и Парадокс.
А именно - представляет свою программу для настойки БД.
0
17 / 17 / 5
Регистрация: 13.10.2015
Сообщений: 102
28.03.2017, 07:28
В Delphi для установления связи между таблицами используется свойство MasterSource.
С уважением
0
0 / 0 / 0
Регистрация: 09.03.2017
Сообщений: 21
28.03.2017, 10:50  [ТС]
так в нем и выдает ошибку.
0
0 / 0 / 0
Регистрация: 09.03.2017
Сообщений: 21
28.03.2017, 10:57  [ТС]
Вот так вот, только в после этого разу ошибку выбивает ту.
Миниатюры
Связи между таблицами ADOTable   Связи между таблицами ADOTable   Связи между таблицами ADOTable  

Связи между таблицами ADOTable   Связи между таблицами ADOTable  
0
17 / 17 / 5
Регистрация: 13.10.2015
Сообщений: 102
28.03.2017, 11:13
Julia_na_na
Вы делаете, на сколько я понял, подстановочное поле а не устанавливаете
связь между таблицами.
С уважением
0
1040 / 856 / 335
Регистрация: 08.12.2016
Сообщений: 3,283
28.03.2017, 11:35
он как раз делает связь между ТАБЛИЦАМИ (т.e. TADOTable). Иначе это был бы Fields Editor

Но что-то сомневаюсь, что у TC предполагается такая работа, что он в первой таблице выберет пол, а во второй таблице останутся одни мужчины или одни женщины. А именно для этого делаются в дельфи Master-Details связи между наборами данных. И ни для чего другого. Для чего TC потребовалась такая связь, совершенно не понятно
0
0 / 0 / 0
Регистрация: 09.03.2017
Сообщений: 21
28.03.2017, 11:42  [ТС]
это через MasterSource, как посоветовали выше, но все равно не работает. Тогда как правильно сделать?
0
1040 / 856 / 335
Регистрация: 08.12.2016
Сообщений: 3,283
28.03.2017, 11:53
Цитата Сообщение от Julia_na_na Посмотреть сообщение
Тогда как правильно сделать?
что именно?
просто что бы было? ничего делать не надо.
0
 Аватар для Пытливый
3763 / 2267 / 705
Регистрация: 29.05.2013
Сообщений: 9,622
28.03.2017, 21:47
Очевидно, что вы хотите подключить справочник "Пол", но неясно куда именно. Если вы для отображения Пользователей используете грид, то в Дельфи для организации выпадающих полей (справочников) надо использовать немного другую методу. Если же речь идет о компоненте DBLookupListBox, то там все достаточно несложно и примеров его настройки море в инете. В общем на данном этапе пока маловато информации о визуальной составляющей вашего интерфейса.
0
0 / 0 / 0
Регистрация: 09.03.2017
Сообщений: 21
29.03.2017, 11:31  [ТС]
Какую методику связывания таблиц необходимо тогда использовать, чтобы при отображении в DBGrid-ах главной таблицы "Пользователи", в подчиненной таблице "Пол" отображалась только связанная запись?
0
1040 / 856 / 335
Регистрация: 08.12.2016
Сообщений: 3,283
29.03.2017, 14:22
добавить в набор данных lookup-поле

Добавлено через 2 часа 34 минуты
в том что предоставлено нет никакой необходимости связывать (в особенности так, как вы) никакие ADOTabl-ы, т.к
на Form1 и Form3 нет ни одного DBAware компонента, где это бы потребовалось. А на форме 4 вы сами в запросе просите вывести код пола, а не его наименование
вместо
SQL
1
2
3
4
SELECT 
  Пользователи.Фамилия, Пользователи.Имя, Пользователи.Отчество, Пользователи.[Код пола], 
  Пользователи.[Дата регистрации], Пользователи.[Время регистрации] 
FROM Пользователи WHERE
напишите
SQL
1
2
3
4
SELECT 
  Пользователи.Фамилия, Пользователи.Имя, Пользователи.Отчество, Пол.ПОЛ, 
  Пользователи.[Дата регистрации], Пользователи.[Время регистрации]
FROM  Пол JOIN Пользователи ON Пол.[Код пола] = Пользователи .[Код пола]  WHERE
и будет вам счастье
0
 Аватар для Пытливый
3763 / 2267 / 705
Регистрация: 29.05.2013
Сообщений: 9,622
29.03.2017, 19:01
Совет YuryK в принципе жизнеспособный, при условии что вы не предполагаете редактировать данные пользователя непосредственно в гриде. Если же вы хотите видеть реальный лукап для поля Пол в гриде, то делается это несколько своеобразно:
Допустим у нас есть таблица-справочник DicSex с полями id,sex и есть таблица Human с полем SexID. И мы хотим в гриде настроенном на таблицу Human иметь возможность выбирать из выпадающего справочника для поля Sex словарные значения.
Помещаем на форму компонент AdoTable1 или AdoQuery1 (не принципиально) и настраиваем его на таблицу DicSex.
Помещаем на форму компонент AdoTable2 или AdoQuery2 (не принципиально) и настраиваем его на таблицу Human.
А вот теперь начинается магия:
Добавляем в AdoTable2 новое числовое поле Sex и выбираем для него тип Lookup. Заполняем поля KeyField=SexID,Dataset=AdoTable1,Lookup keys=id,ResultField=Sex
Запускаем на исполнение и наслаждаемся полноценным лукапом в гриде.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.03.2017, 19:01
Помогаю со студенческими работами здесь

Нет связи между таблицами в Delphi
Ребят, такая проблема, в базе имеются 5 таблиц, 1 таблица - с ключевым полем, остальные 4 - без ключа (с типом данных "числовой")...

Создание связи между двумя таблицами MS Access, используя ADOQuery
Здравствуйте! У меня в Access есть две связанные между собой таблицы. Я в Delphi вставила три компонента ADOConnection, DataSource,...

QuickRep, отчет с несколькими таблицами через ADOTable и DataSet
Приветствую, нужна помощь. Делаю интерфейс для БД в SQL. Хочу сделать отчет по нескольким таблицам, подобный отчет делал, но исходя лишь...

Связь таблиц через ADOTable. не могу осуществить сложные связи
Связь осуществил таким образом. ADOConnection->ADOTable->DateSourse->DBGrid При несколько связей между двумя 3(4) где идёт Главная и...

Связи меж таблицами
У меня есть таблицы типа Paradox,работаю в delphi 7 Как мне установить чтобы одной записи в главной таблице соответствовала одна (или...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
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
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru