Форум программистов, компьютерный форум, киберфорум
C++ Builder: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
1 / 1 / 0
Регистрация: 25.05.2012
Сообщений: 14

Помощь со связями в базе данных

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

Студворк — интернет-сервис помощи студентам
Есть База данных состоящая из 7 таблиц
Схема связей в базе:

Так вот не знаю как организавать чтобы в форме добавления изменения данных

заместо кодов поставщика, неисправности, местоположения в форме брались данные из других таблиц и выводились, т.е. заместо отображения табельного номера выходили данные с ФИО. и как организовать чтоб при переходе к следующей записи связь сохранялась и нормально отображалась.
вот код: что исправить как поправить, плиз помогите.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
void __fastcall Tdiyf::FormCreate(TObject *Sender)
{
 ADOConnection1->LoginPrompt=false;
DataSource1->DataSet=ADOTable1;
 
ADOConnection1->ConnectionString ="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=курс.mdb;Persist Security Info=False";
ADOConnection1->Connected=true;
ADOTable1->Connection=ADOConnection1;
ADOTable1->TableName="Оборудование";
ADOTable1->Active=true;
DBEdit1->DataSource=DataSource1;
DBEdit1->DataField="инвентарный номер";
DBEdit1->ReadOnly=true;
DBEdit2->DataSource=DataSource1;
DBEdit2->DataField="название";
DBEdit2->ReadOnly=true;
DBEdit3->DataSource=DataSource1;
DBEdit3->DataField="местоположение";
DBEdit3->ReadOnly=true;
DBEdit4->DataSource=DataSource1;
DBEdit4->DataField="Дата покупки";
DBEdit4->ReadOnly=true;
DBEdit5->DataSource=DataSource1;
DBEdit5->DataField="Серийный номер";
DBEdit5->ReadOnly=true;
DBEdit6->DataSource=DataSource1;
DBEdit6->DataField="Поставщик";
DBEdit6->ReadOnly=true;
DBEdit7->DataSource=DataSource1;
DBEdit7->DataField="Неисправность";
DBEdit7->ReadOnly=true;
DBEdit8->DataSource=DataSource1;
DBEdit8->DataField="Тип";
DBEdit8->ReadOnly=true;
DBEdit9->DataSource=DataSource1;
DBEdit9->DataField="ответственный пользователь";
DBEdit9->ReadOnly=true;
ADOTable1->First();
ADOQuery1->Connection=ADOConnection1;
ADOQuery1->DataSource= DataSource1;
}
//---------------------------------------------------------------------------
void __fastcall Tdiyf::Button1Click(TObject *Sender)
{
ADOTable1->First();
 
}
//---------------------------------------------------------------------------
 
void __fastcall Tdiyf::Button2Click(TObject *Sender)
{
ADOTable1->Prior();
 
}
//---------------------------------------------------------------------------
 
void __fastcall Tdiyf::Button3Click(TObject *Sender)
{
ADOTable1->Next();
 
}
//---------------------------------------------------------------------------
 
void __fastcall Tdiyf::Button4Click(TObject *Sender)
{
ADOTable1->Last();
 
}
//---------------------------------------------------------------------------
 
void __fastcall Tdiyf::Button5Click(TObject *Sender)
{
diyf->Close();
}
//---------------------------------------------------------------------------
 
void __fastcall Tdiyf::Button6Click(TObject *Sender)
{
ADOQuery1->Active=false;
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Text="delete * from Оборудование where [Инвентарный номер] = "+DBEdit1->Text;
ADOQuery1->ExecSQL();
ADOQuery1->Active=false;
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Text="select * from Оборудование";
ADOQuery1->Active=true;
ADOConnection1->Connected=false;
ADOTable1->Active=false;
ADOConnection1->Connected=true;
ADOTable1->Active=true;
ADOTable1->TableName="Оборудование";
ADOTable1->Active=true;
DBEdit1->DataSource=DataSource1;
DBEdit1->DataField="инвентарный номер";
DBEdit1->ReadOnly=true;
DBEdit2->DataSource=DataSource1;
DBEdit2->DataField="название";
DBEdit2->ReadOnly=true;
DBEdit3->DataSource=DataSource1;
DBEdit3->DataField="Местоположение";
DBEdit3->ReadOnly=true;
DBEdit4->DataSource=DataSource1;
DBEdit4->DataField="Дата покупки";
DBEdit4->ReadOnly=true;
DBEdit5->DataSource=DataSource1;
DBEdit5->DataField="Серийный номер";
DBEdit5->ReadOnly=true;
DBEdit6->DataSource=DataSource1;
DBEdit6->DataField="Поставщик";
DBEdit6->ReadOnly=true;
DBEdit7->DataSource=DataSource1;
DBEdit7->DataField="Неисправность";
DBEdit7->ReadOnly=true;
DBEdit8->DataSource=DataSource1;
DBEdit8->DataField="Тип";
DBEdit8->ReadOnly=true;
DBEdit9->DataSource=DataSource1;
DBEdit9->DataField="ответственный пользователь";
DBEdit9->ReadOnly=true;
ADOTable1->First();
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.05.2012, 14:19
Ответы с готовыми решениями:

Нужна помощь в редактировании записей в базе данных в С++ Builder 5
Уважаемые программисты возник небольшой вопрос по поводу редактирования, изменения, обновления, удаления и т.д. записей в базе данных. ...

Помощь в базе данных
Добрый день, помогите пожалуйста провести связи меду таблицами в базе данных Вот задание самой базы данных: "ПОСТАЧАЛЬНИК...

Нужна помощь по Базе Данных
Нужна помощь по базе данных в Delphi. Программа позволяет пользователю вводить данные, редактировать, создавать справочники, запросы,...

5
1 / 1 / 0
Регистрация: 25.05.2012
Сообщений: 14
27.05.2012, 19:46  [ТС]
я так понял нужно на форму поместить 2 компонента(чтоб пока что связать таблицу оборудования и допустим сотрудники) адодатасерс и 2 адодататабл и связать через мастрсерс указать в нем датасерс2 но как сделать чтоб при переходе на следующую запись выходили мледующие данные связанные с этих таблиц???
0
1569 / 505 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
27.05.2012, 19:57
grpo,
Цитата Сообщение от grpo Посмотреть сообщение
связать через мастрсерс указать в нем датасерс2
Если свяжите по ключевому полю, то все будет нормально.

Добавлено через 8 минут
grpo, и вообще я не до конца понял проблему.
Вы либо выкладывайте проект и пишите конкретно что хотите, либо отправьте в ПМ мне инфу по TeamViewer - зайду в гости, может чем и помогу.
0
1 / 1 / 0
Регистрация: 25.05.2012
Сообщений: 14
27.05.2012, 20:09  [ТС]
Вот работа, посмотрите, плиз, при переходе на следующую запись в добавление, изменение данных не работате связь(
Вложения
Тип файла: rar проект.rar (1.01 Мб, 9 просмотров)
0
1569 / 505 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
27.05.2012, 22:06
grpo,
Попозже гляну - отпишусь.

Добавлено через 1 час 0 минут
grpo, ох, уважаемый... БД у Вас спроектирована по уму (относительно остальных участников), но вот почему Вы так безалаберно относитесь к называнию полей в таблицах БД? Запомните золотое правило: поля называем, используя англ. алфавит, без спец. символов и пробелов! В этом проблема была.

Итак, что Вам надо сделать:

Добавлено через 1 минуту
А впрочем сейчас переделанный проект выложу.
1
1569 / 505 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
27.05.2012, 22:26
И еще Вам один бесплатный совет: если БД одна, то используйте один ADOConnection, иначе могут возникнуть проблемы с синхронизацией.
Вложения
Тип файла: rar проект.rar (1,012.2 Кб, 27 просмотров)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.05.2012, 22:26
Помогаю со студенческими работами здесь

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

Нужна помощь по базе данных учета кадров
Мне нужно базу данных по учету кадров в банке. Я создал 4 таблицы , но теперь не знаю как связать "личные данные" и...

Нужна помощь по исправлению ошибок в базе данных
само задание: Прокат автомобилей. Фирма, занимающаяся прокатом автомобилей, имеет автопарк, содержащий некоторое количество...

Binding данных со связями MVVM
Как за биндить связанные данные ? я только начинаю осваивать эту технологию <Grid Grid.Column="0"> ...

База данных со связями многие ко многим
Есть 3 таблицы в бд: Author (поля: name_id, name), Book(поля: book_id, book), Author_Book (name_id, book_id). В phpmyadmin я их связал со...


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

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