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

Связь БД

31.05.2013, 19:47. Показов 1205. Ответов 19
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
здравствуйте у меня возник вопрос связи двух таблиц... вообщем вот скриншот...
как сделать что-то подобное...этой связи..
Миниатюры
Связь БД   Связь БД  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
31.05.2013, 19:47
Ответы с готовыми решениями:

Определяет ли связь, в частности современная связь, структуру государственного управления?
Определяет ли связь, в частности современная связь, структуру государственного управления, а также структуру государственного устройства?

связь CPU-314SC и WINDOWS где посмотреть обмен данными и вообще связь
между двумя системами.

Создать любые две таблицы, установить между ними связь, и с помощью запроса показать эту связь
Короче такое задание. Создать любые две таблицы, установить между ними связь и с помощью запроса показать эту связь. Как это сделать?...

19
 Аватар для Waddonator
969 / 644 / 97
Регистрация: 01.11.2012
Сообщений: 1,447
01.06.2013, 07:36
Цитата Сообщение от abahaba Посмотреть сообщение
как сделать что-то подобное
Должны быть подключены 2 таблицы. 2 варианта:
1. Использование Table. Используйте свойство MasterSource/MasterFields зависимой таблицы.
2. Использование Table или Query. В свойстве OnAfterScroll главной таблицы изменяйте:
а) filter в зависимой таблице, или
б) (только Query) полностью меняйте sql запрос с конструкцией WHERE и открывайте его заново.
0
0 / 0 / 0
Регистрация: 21.04.2013
Сообщений: 36
01.06.2013, 09:31  [ТС]
б) (только Query) полностью меняйте sql запрос с конструкцией WHERE и открывайте его заново.[/QUOTE]

думаю что мне вот этот вариант подходит...можете по подробнее объяснить?! вот какие таблицы я хочу связать с помощью adoquery
Миниатюры
Связь БД  
0
 Аватар для Waddonator
969 / 644 / 97
Регистрация: 01.11.2012
Сообщений: 1,447
01.06.2013, 10:11
1) Достаточно одного ADOConnection - оба ADOQuery подключите к нему (БД же одна и та же)
2) В структуру таблиц должны входить следующие поля:
ADOQuery1 - id (ключевое поле типа счетчик или целочисленное),
ADOQuery2 - id1 (внешний ключ целочисленного типа, не путать с id). В это поле записывается значение соответствующее полю id из главной таблицы
3) В событии OnAfterScroll компонента ADOQuery1 меняете текст sql-запроса компонента ADOQuery2:
Delphi
1
2
3
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Text:='SELECT * FROM ... WHERE [id1]='+ADOQuery1.FieldByName('id').AsString; //текст вашего изначального запроса
ADOQuery2.Open;
0
0 / 0 / 0
Регистрация: 21.04.2013
Сообщений: 36
01.06.2013, 10:34  [ТС]
вроде бы все сделал как написано, при компиляции выдает ошибку.
Миниатюры
Связь БД  
0
 Аватар для Waddonator
969 / 644 / 97
Регистрация: 01.11.2012
Сообщений: 1,447
01.06.2013, 10:41
abahaba, вам же сказали "синтаксическая ошибка в запросе" - это значит, что вы допустили ошибку в тексте запроса. Если вы вами не в состоянии исправить - выкладывайте код. Телепатические способности сегодня что-то подводят (наверное, потому что суббота).
0
0 / 0 / 0
Регистрация: 21.04.2013
Сообщений: 36
01.06.2013, 10:51  [ТС]
так я же этот же код ваш вставил... и все больше ничего не менял
0
 Аватар для Waddonator
969 / 644 / 97
Регистрация: 01.11.2012
Сообщений: 1,447
01.06.2013, 11:00
Цитата Сообщение от abahaba Посмотреть сообщение
так я же этот же код ваш вставил... и все больше ничего не менял
Интересно, как вы можете ставить мой код, если я не знаю, как называются ваши таблицы?
Delphi
1
ADOQuery2.SQL.Text:='<сюда вместо этой фразы вставьте свой текст sql-запроса для ADOQuery2> WHERE [id1]='+ADOQuery1.FieldByName('id').AsString;
0
0 / 0 / 0
Регистрация: 21.04.2013
Сообщений: 36
01.06.2013, 11:16  [ТС]
ОК! все работает....но теперь когда доходит до последней записи...выдает ошибку синтаксиса
Миниатюры
Связь БД  
0
0 / 0 / 0
Регистрация: 21.04.2013
Сообщений: 36
01.06.2013, 11:24  [ТС]
вот посмотрите на 3 форме....подскажите чтобы отображалось именно так как надо...я что то не отупляю...
Вложения
Тип файла: rar new_program17.rar (8.51 Мб, 14 просмотров)
0
 Аватар для Waddonator
969 / 644 / 97
Регистрация: 01.11.2012
Сообщений: 1,447
01.06.2013, 11:34
abahaba, я не могу проверить, т.к. у меня не установлены какие-то Rz-компоненты. В какой ситуации возникает эта ошибка? Когда в главной таблице создаете новую строку?
0
0 / 0 / 0
Регистрация: 21.04.2013
Сообщений: 36
01.06.2013, 12:10  [ТС]
нет просто когда дохожу до последней записи в главной таблице...и по идее курсор должен переходить на пустую запись...вот в этом месте он выдает ошибку...это то ладно но того результата которого я хотел я не могу получить..не знаю как для отдельной записи главной таблицы ввести нужную в заисимую...


может вам скинуть эту библиотеку...чтобы у вас работала?!
0
 Аватар для Waddonator
969 / 644 / 97
Регистрация: 01.11.2012
Сообщений: 1,447
01.06.2013, 12:18
Цитата Сообщение от abahaba Посмотреть сообщение
и по идее курсор должен переходить на пустую запись
это и есть создание новой записи. Полю id присваивается значение только после того, как новая запись внесена в базу. Поэтому поставьте проверку
Delphi
1
2
3
if ADOQuery1.FieldByName('id').AsString<>'' then begin
... //здесь оговариваемый код
end;
Цитата Сообщение от abahaba Посмотреть сообщение
не знаю как для отдельной записи главной таблицы ввести нужную в заисимую
в зависимой будут отображаться только у которых поле id1 будет совпадать с полем id главной таблицы.
0
0 / 0 / 0
Регистрация: 21.04.2013
Сообщений: 36
01.06.2013, 12:27  [ТС]
в зависимой будут отображаться только у которых поле id1 будет совпадать с полем id главной таблицы.[/QUOTE]

ну вот я например...вношу данные через дбэдит в главную таблицу....как мне внести данные в зависимую именно для этой записи которую я вношу.
0
 Аватар для Waddonator
969 / 644 / 97
Регистрация: 01.11.2012
Сообщений: 1,447
01.06.2013, 12:32
Цитата Сообщение от abahaba Посмотреть сообщение
как мне внести данные в зависимую именно для этой записи которую я вношу.
Точно так же, как и для других, только поле id1 должно равняться id главной. Обычно такие поля не отображают в DBGrid'ах, и вносят значения не пользователь, а напрямую из главной таблицы.
0
0 / 0 / 0
Регистрация: 21.04.2013
Сообщений: 36
01.06.2013, 12:34  [ТС]
вроде что то начал понимать....хорошо значит в главной таблице..тоже должны быть поля которые в зависимой?!
0
 Аватар для Waddonator
969 / 644 / 97
Регистрация: 01.11.2012
Сообщений: 1,447
01.06.2013, 12:38
Цитата Сообщение от abahaba Посмотреть сообщение
хорошо значит в главной таблице..тоже должны быть поля которые в зависимой?!
Нет, на то она и главная. Главная содержит только ключевое поле (чтобы идентифицировать запись). Подчиненная содержит ключевое поле (для идентификации) и связующее (по которому осуществляется связь, совпадающее с ключевым главной таблицы).
0
0 / 0 / 0
Регистрация: 21.04.2013
Сообщений: 36
01.06.2013, 12:40  [ТС]
все все большое спасибо разобрался!!!!!!!!!!!!!!!)))))))

Добавлено через 1 минуту
а можете еще помочь с компонентом Tabcontrols. Мне нужно по нажатию на определенные вкладки....открывались разные таблицы
0
 Аватар для Waddonator
969 / 644 / 97
Регистрация: 01.11.2012
Сообщений: 1,447
01.06.2013, 12:43
Цитата Сообщение от abahaba Посмотреть сообщение
а можете еще помочь с компонентом Tabcontrols.
Используйте PageControl. Заведите ADOQuery для каждой таблицы. Создайте необходимое количество вкладок. На каждую вкладку поместите свой DBGrid и свяжите с нужным ADOQuery. У вас все таблицы будут открыты, но отображаться будет только одна, которая на активной вкладке.
0
0 / 0 / 0
Регистрация: 21.04.2013
Сообщений: 36
01.06.2013, 12:46  [ТС]
Спасибо большое!!! вы очень мне помогли...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
01.06.2013, 12:46
Помогаю со студенческими работами здесь

Связь в БД
Доброго времени суток. У меня есть база данных на Access 2003 для склада помогите связать таблицы правильно а то как я их связываю когда...

связь БД
вот такая связь между таблицами поставщики и варианты, много к одному(!) но как сделать так, чтобы в одном варианте поставщики не...

Связь с бд
Здравствуйте,подскажите пожалуйста.Есть код,который соединяется с базой данный и выводит список фамилий,который открывается,когда нажимаем...

Связь 2 бд
Здрасте! Вопрос следующий: Как мне в виде одной бд, отобразить вид другой бд, т.е. связать их.

Wi-Fi связь на PC
Опишу кратко свою проблему: купил на днях роутер и адаптеры wi-fi, все подключил и настроил, первый адаптер подключил к ноуту ,а второй к...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.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