1 / 1 / 0
Регистрация: 25.05.2012
Сообщений: 14

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

27.05.2012, 14:19. Показов 979. Ответов 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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru