Базы данных - библиотека
Федеральное государственное
бюджетное образовательное
"Чувашский государственный
университет имени И.Н.
Факультет информатики и вычислительной техники
Дисциплина: базы данных
Курсовая работа
Библиотека
Выполнил ст. гр. ИВТ-11-10
Волкова А.А
Проверил Буланкина Е.Ю.
Чебоксары 2013
Содержание
- Задание.
Задание на курсовую работу в соответствии с выбранным вариантом.
- Анализ. Предметная область.
- Описание предметной области.
- Перечень и описание сущностей и атрибутов базы данных.
- Проектирование. Нормализация базы данных. Схема данных.
- Нормализации базы данных (методом ER-диаграмм).
- Схема данных.
- Перечень и описание таблиц и их полей (с указанием типов данных и ограничений) в сводной таблице.
- Программная часть.
- Тестирование. Результаты тестирования.
- Сопровождение. Руководство пользователя.
- Список использованной литературы
- Приложение 1. Исходный текст приложения.
- Задание.
Разработать систему, помогающую обслуживать библиотеку. Система должна предусматривать режимы ведения системного каталога, отражающего перечень областей знаний, по которым имеются книги в библиотеке. Внутри библиотеки области знаний в систематическом каталоге могут иметь уникальный внутренний номер и полное наименование. Каждая книга может содержать сведения из нескольких областей знаний. Каждая книга в библиотеке может присутствовать в нескольких экземплярах.
Предусмотреть следующие ограничения на информацию в системе:
- Не может быть информации о соавторах, если нет информации об авторе. Книга может не иметь ни автора ни соавтора.
- В библиотеке должны быть записаны читатели не моложе 17 лет.
- В библиотеке присутствуют книги, изданные начиная с 1960 по текущий год
- Каждый читатель может держать на руках не более 5 книг.
- Каждый читатель при регистации в библиотеке должен дать телефон для связи он может быть рабочим или домашним.
- Каждая область знаний может содержать ссылки на множество книг, но каждая книга может относиться к различным областям.
- Анализ. Предметная область
- Описание предметной области.
Разработать систему, помогающую обслуживать библиотеку. Система должна предусматривать режимы ведения системного каталога, отражающего перечень областей знаний, по которым имеются книги в библиотеке. Внутри библиотеки области знаний в систематическом каталоге могут иметь уникальный внутренний номер и полное наименование. Каждая книга может содержать сведения из нескольких областей знаний. Каждая книга в библиотеке может присутствовать в нескольких экземплярах.
В библиотеке ведется картотека читателей. На каждого читателя в картотеку заносятся следующие сведения:
- Фамилия, Имя , Отчество
- домашний адрес
- телефон (Будем считать, что у нас два телефона - рабочий и домашний)
- дата рождения
Каждому читателю присваивается уникальный номер читательского билета. Читатель не должен одновременно держать более одного экземпляра книги одного названия. Каждая книга, хранящаяся в библиотеке, характеризуется следующими параметрами:
- уникальный шифр
- название
- фамилия автора (может отсутствовать)
- фамилии соавторов (могут отсутствовать)
- место издания (город)
- издательство
- год издания
- количество страниц.
- количество экземпляров книги в библиотеке
Каждая книга в библиотеке может присутствовать в нескольких экземплярах. Каждый экземпляр имеет следующие характеристики:
- уникальный инвентарный номер
- шифр книги, который совпадает с уникальным шифром из описания книг
- присутствие в библиотеке.
В случае отсутствия данного экземпляра книги должны быть записаны следующие сведения:
- номер билета читателя, который взял книгу
- дата выдачи книги
- дата возврата.
Каждый экземпляр книги может находиться на руках только у одного читателя. Предусмотреть следующие ограничения на информацию в системе:
- Не может быть информации о соавторах, если нет информации об авторе. Книга может не иметь ни автора ни соавтора.
- В библиотеке должны быть записаны читатели не моложе 17 лет.
- В библиотеке присутствуют книги, изданные начиная с 1960 по текущий год
- Каждый читатель может держать на руках не более 5 книг.
- Каждый читатель при регистации в библиотеке должен дать телефон для связи он может быть рабочим или домашним.
- Каждая область знаний может содержать ссылки на множество книг, но каждая книга может относиться к различным областям.
- Перечень и описание сущностей и атрибутов базы данных.
Сущности базы данных:
- Читатель
- Книги
- Экземпляр
- История
- Область Знаний
Перечень и описание всех атрибутов базы данных:
№ |
Имя атрибута |
Описание |
1. |
КодЧитателя |
Уникальный код читателя |
2. |
ФИО |
Фамилия, имя, отчество читателя |
3. |
Адрес |
Адрес проживания читателя |
4. |
Телефон |
Телефон читателя |
5. |
ДатаРождения |
Дата рождения читателя |
6. |
КодКниги |
Уникальный код книги |
7. |
Название |
Название книги |
8. |
ФамАвтора |
Фамилия автора книги |
9. |
ФамСоавторов |
Фамилия соавторов книги |
10. |
МестоИздания |
Место издания книги |
11. |
Издательство |
Издательство книги |
12. |
КолСтраниц |
Количество страниц в книге |
13. |
КолЭкземпляров |
Количество экземпляров книги |
14. |
КодЭкземпляра |
Уникальный код экземпляра |
15. |
КодОблЗнани |
Уникальный код области знаний |
16. |
Описание |
Описание области знаний |
17. |
КодИстории |
Уникальный код истории |
18. |
ДатаВыдачи |
Дата выдачи книги |
19. |
ДатаВозврата |
Дата возврата книги читателем |
20. |
ГодИздания |
Год издания книги |
- Проектирование. Нормализация базы данных. Схема данных.
- ER диаграмма нормализованной базы данных:
- Перечень и описание таблиц и их полей (с указанием типов данных и ограничений) в сводной таблице.
Имя атрибута |
Тип |
Описание |
Читатель | ||
КодЧитателя |
Уникальный код читателя | |
ФИО |
Фамилия, имя, отчество читателя | |
Адрес |
Адрес проживания читателя | |
Телефон |
Телефон читателя | |
ДатаРождения |
Дата рождения читателя | |
Книги | ||
КодКниги |
Уникальный код книги | |
Название |
Название книги | |
ФамАвтора |
Фамилия автора книги | |
ФамСоавторов |
Фамилия соавторов книги | |
МестоИздания |
Место издания книги | |
Издательство |
Издательство книги | |
ГодИздания |
Год издания книги | |
КолСтраниц |
Количество страниц в книге | |
КолЭкземпляров |
Количество экземпляров книги | |
Экземпляр | ||
КодЭкземпляра |
Уникальный код экземпляра | |
КодКниги |
Уникальный код книги | |
КодИстории |
Уникальный код истории | |
ОблатьЗнаний | ||
КодОблЗнани |
Уникальный код области знаний | |
Описание |
Описание области знаний | |
История | ||
КодИстории |
Уникальный код истории | |
КодЭкземпляра |
Уникальный код экземпляра | |
КодЧитателя |
Уникальный код читателя | |
ДатаВыдачи |
Дата выдачи книги | |
ДатаВозврата |
Дата возврата книги читателем | |
ОблЗнанийКнииги | ||
КодКниги |
Уникальный код книги | |
КодОблЗнаний |
Уникальный код области знаний | |
- Программная часть.
Запросы
Запрос для отображении информации о читателе
select k.КодКниги, e.КодЭкземпляра, k.Название, o.Описание, i.КодИстории, ch.КодЧитателя
from Читатель ch
inner join История i
on ch.КодЧитателя=i.КодЧитателя
inner join Экземпляр e
on i.КодЭкземпляра=e.
inner join Книги k
on e.КодКниги=k.КодКниги
inner join ОблЗнанийКниги ok
on k.КодКниги=ok.КодКниги
inner join ОблЗнаний o
on ok.КодОблЗнаний=o.КодОблЗнаний
where ch.ФИО='Афанасьев Виктор Николаевич'
group by k.КодКниги, e.КодЭкземпляра, k.Название,o.КодОблЗнаний, o.Описание, i.КодИстории, ch.КодЧитателя
Запрос выведении информации об истории
select История.КодИстории,Читатель.
Хранимая процедура
Добавление новой записи в таблицу ОблЗнаний
USE [BDCur]
GO
/****** Object: StoredProcedure [dbo].[NewOblZ] Script Date: 06/09/2012 16:57:40 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- ==============================
-- Author: BDCur
-- Create date:
-- Description:
-- ==============================
ALTER PROCEDURE [dbo].[NewOblZ]
-- Add the parameters for the stored procedure here
@Описание nchar(50)
AS insert into ОблЗнаний(Описание) values(@Описание)
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
SELECT @Описание
END
Проверка даты выдачи книги и даты возврата книги (дата выдачи должен быть раньше даты возвращения книги)
USE [BDCur]
GO
/****** Object: StoredProcedure [dbo].[date_test] Script Date: 06/13/2012 15:04:00 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- ==============================
-- Author: BDCur
-- Create date:
-- Description:
-- ==============================
ALTER PROCEDURE [dbo].[date_test]
-- Add the parameters for the stored procedure here
@date_vi date,
@date_vo date
AS
BEGIN
declare @a int
set @a=(select datediff(DAY,@date_vi,@date_vo
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
SELECT @a
RETURN @a
END
Проверка дат на корректность ввода
USE [BDCur]
GO
/****** Object: StoredProcedure [dbo].[date_test2] Script Date: 06/13/2012 15:09:12 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- ==============================
-- Author: BDCur
-- Create date:
-- Description:
-- ==============================
ALTER PROCEDURE [dbo].[date_test2]
-- Add the parameters for the stored procedure here
@Дата_выдачи nvarchar(50),
@Дата_возврата nvarchar(50)
AS
BEGIN
declare @a int
declare @b int
declare @c int
set @a=1;
set @b=0;
set @a=(select ISDATE(@Дата_выдачи))
set @b=(select ISDATE(@Дата_возврата))
set @c=@a*@b
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
SELECT @Дата_выдачи,@Дата_возврата,@a
return @a
END
Транзакции
Добавление новой записи в таблицу История и редактирование таблицы Экземпляр
USE [BDCur]
GO
/****** Object: StoredProcedure [dbo].[NewHistory] Script Date: 06/09/2012 16:59:08 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- ==============================
-- Author: DBCur
-- Create date:
-- Description:
-- ==============================
ALTER PROCEDURE [dbo].[NewHistory]
-- Add the parameters for the stored procedure here
@КодЭкземпляра int = NULL,
@КодЧитателя int = NULL,
@ДатаВыдачи date = '1960-01-01',
@ДатаВозврата date = '1960-01-01'
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
BEGIN TRANSACTION
DECLARE @re int
DECLARE @pe int
DECLARE @ta TABLE (qw int NULL);--OUTPUT inserted.КодИстории into @ta
insert into История(КодЭкземпляра,
--OUTPUT inserted.* into @pe
set @re=(select qw from @ta)
--set @re=(SELECT КодИстории FROM История where КодЭкземпляра=@КодЭкземпляра and КодЧитателя=@КодЧитателя and ДатаВыдачи=@ДатаВыдачи and ДатаВозврата=@ДатаВозврата)
set @pe=(select КодИстории from Экземпляр where КодЭкземпляра=@КодЭкземпляра)
update Экземпляр set КодИстории=@re where КодЭкземпляра=@КодЭкземпляра and КодИстории is NULL
IF @@ERROR=1
ROLLBACK TRANSACTION
IF @pe is NULL
COMMIT TRANSACTION
ELSE
ROLLBACK TRANSACTION
SET NOCOUNT ON;
-- Insert statements for procedure here
SELECT @КодЭкземпляра, @КодЧитателя,@ДатаВыдачи, @ДатаВозврата,@pe,@re
END
Листинг программы
Unit1.cpp
//----------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
#include "modul.h"
#include "Unit2.h"
#include "Unit3.h"
#include "Unit4.h"
#include "Unit5.h"
#include "Unit6.h"
#include "Unit7.h"
#include "Unit9.h"
//----------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
int de=1;
void del_his(){
Form1->Label3->Visible=0;
Form1->Label3->Enabled=0;
Form1->Button10->Visible=0;
Form1->Button10->Enabled=0;
return;
}
void searh(){
Form1->Button11->Visible=0;
Form1->Button11->Enabled=0;
return;
}
//----------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
Form1->Caption="История";
del_his();
searh();
}
//----------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Form1->DBGrid1->DataSource=
de=1;
Form1->Caption="История";
del_his();
searh();
}
//----------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Form1->DBGrid1->DataSource=
de=2;
Form1->Caption="Книги";
del_his();
searh();
}
//----------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
Form1->DBGrid1->DataSource=
de=3;
Form1->Caption="Область знаний";
del_his();
searh();
}
//----------------------------
void __fastcall TForm1::Button4Click(TObject *Sender)
{
Form1->DBGrid1->DataSource=
de=4;
Form1->Caption="Область знаний книги";
del_his();
searh();
}
//----------------------------
void __fastcall TForm1::Button5Click(TObject *Sender)
{
Form1->DBGrid1->DataSource=
de=5;
Form1->Caption="Читатель";
Form1->Button11->Visible=1;
Form1->Button11->Enabled=1;
del_his();
}
//----------------------------
void __fastcall TForm1::Button6Click(TObject *Sender)
{
Form1->DBGrid1->DataSource=
de=6;
Form1->Caption="Экземпляр";
Label3->Visible=true;
Label3->Enabled=true;
Button10->Visible=1;
Button10->Enabled=1;
searh();
}
//----------------------------
void __fastcall TForm1::Button7Click(TObject *Sender)
{
switch(de)
{
case 1:
// DataModule2->ADOTable1->
// Label4->Caption=0;
// DataModule2->ADOQuery3->
Label4->Caption=DataModule2->
// DataModule2->ADOQuery3->
// DataModule2->ADOQuery3->
// DataModule2->ADOQuery3->
// Label4->Caption=
// Label4->Visible=1;
// if(DataModule2->ADOQuery3-
// ShowMessage("feefef");
DataModule2->ADOQuery3->SQL->
DataModule2->ADOQuery3->
// DataModule2->ADOQuery1->
DataModule2->ADOQuery1->
DataModule2->ADOQuery1->
break;
case 2:
DataModule2->ADOTable2->
break;
case 3:
DataModule2->ADOTable3->
break;
case 4:
DataModule2->ADOTable4->
break;
case 5:
DataModule2->ADOTable5->
break;
case 6:
DataModule2->ADOTable6->
break;
}
}
//----------------------------
void __fastcall TForm1::Button8Click(TObject *Sender)
{
Form1->DBGrid1->Enabled=0;
switch(de){
case 1:
// DataModule2->ADOTable1->
// DataModule2->ADOTable1->
Form2->Show();
Form1->Enabled=0;
Form2->Caption="Добавть запись в таблицу История";
break;
case 2:
DataModule2->ADOTable2->Last()
DataModule2->ADOTable2->
Form3->Show();
Form1->Enabled=0;
Form3->Caption="Добавть запись в таблицу Книги";
break;
case 3:
// DataModule2->ADOTable3->
// DataModule2->ADOTable3->
Form4->Show();
Form1->Enabled=0;
Form4->Caption="Добавть запись в таблицу Область знаний";
break;
case 4:
DataModule2->ADOTable4->Last()
DataModule2->ADOTable4->
Form5->Show();
Form1->Enabled=0;
Form5->Caption="Добавть запись в таблицу Область знаний книги";
break;
case 5:
DataModule2->ADOTable5->Last()
DataModule2->ADOTable5->
Form6->Show();
Form1->Enabled=0;
Form6->Caption="Добавть запись в таблицу Читатель";
break;
case 6:
DataModule2->ADOTable6->Last()
DataModule2->ADOTable6->
Form7->Show();
Form1->Enabled=0;
Form7->Caption="Добавть запись в таблицу Экземпляр";
break;
}
}
//----------------------------
void __fastcall TForm1::Button9Click(TObject *Sender)
{
switch(de){
case 1:
DataModule2->ADOTable1->Edit()
Form2->Show();
Form1->Label2->Caption=0;
Form1->Enabled=0;
Form2->Caption="Редактирование записи в таблице История";
break;
case 2:
DataModule2->ADOTable2->Edit()
Form3->Show();
Form1->Enabled=0;
Form3->Caption="Редактирование записи в таблице Книги";
break;
case 3:
DataModule2->ADOTable3->Edit()
Form4->Show();
Form1->Enabled=0;
Form1->Label1->Caption=0;
Form4->Caption="Редактирование записи в таблице Область знаний";
break;
case 4:
DataModule2->ADOTable4->Edit()
Form5->Show();
Form1->Enabled=0;
Form5->Caption="Редактирование записи в таблице Область знаний книги";
break;
case 5:
DataModule2->ADOTable5->Edit()
Form6->Show();
Form1->Enabled=0;
Form6->Caption="Редактирование записи в таблице Читатель";
break;
case 6:
DataModule2->ADOTable6->Edit()
Form7->Show();
Form1->Enabled=0;
Form7->Caption="Редактирование записи в таблице Экземпляр";
break;
}
}
//----------------------------
void __fastcall TForm1::Button10Click(TObject *Sender)
{
Label4->Caption=DataModule2->
DataModule2->ADOQuery2->SQL->
DataModule2->ADOQuery2->
DataModule2->ADOTable6->
}
//----------------------------
void __fastcall TForm1::Button11Click(TObject *Sender)
{
Form9->Show();
Form1->Enabled=0;
}
//----------------------------
Unit1.h
//----------------------------
#ifndef Unit1H
#define Unit1H
//----------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <DBGrids.hpp>
#include <Grids.hpp>
#include <ExtCtrls.hpp>
//----------------------------
class TForm1 : public TForm
{
__published: // IDE-managed Components
TDBGrid *DBGrid1;
TButton *Button1;
TButton *Button2;
TButton *Button3;
TButton *Button4;
TButton *Button5;
TButton *Button6;
TButton *Button7;
TButton *Button8;
TButton *Button9;
TLabel *Label1;
TLabel *Label2;
TButton *Button10;
TLabel *Label3;
TLabel *Label4;
TButton *Button11;
void __fastcall Button1Click(TObject *Sender);
void __fastcall Button3Click(TObject *Sender);
void __fastcall Button2Click(TObject *Sender);
void __fastcall Button4Click(TObject *Sender);
void __fastcall Button5Click(TObject *Sender);
void __fastcall Button6Click(TObject *Sender);
void __fastcall Button7Click(TObject *Sender);
void __fastcall Button8Click(TObject *Sender);
void __fastcall Button9Click(TObject *Sender);
void __fastcall Button10Click(TObject *Sender);
void __fastcall Button11Click(TObject *Sender);
private: // User declarations
public: // User declarations
__fastcall TForm1(TComponent* Owner);
};
//----------------------------
extern PACKAGE TForm1 *Form1;
//----------------------------
#endif
Modul.h
//----------------------------
#ifndef modulH
#define modulH
//----------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <ADODB.hpp>
#include <DB.hpp>
//----------------------------
class TDataModule2 : public TDataModule
{
__published: // IDE-managed Components
TADOConnection *ADOConnection1;
TADOTable *ADOTable1;
TADOTable *ADOTable2;
TADOTable *ADOTable3;
TADOTable *ADOTable4;
TADOTable *ADOTable5;
TADOTable *ADOTable6;
TDataSource *DataSource1;
TDataSource *DataSource2;
TDataSource *DataSource3;
TDataSource *DataSource4;
TDataSource *DataSource5;
TDataSource *DataSource6;
TIntegerField *ADOTable1DSDesigner;
TIntegerField *ADOTable1DSDesigner2;
TIntegerField *ADOTable1DSDesigner3;
TWideStringField *ADOTable1DSDesigner4;
TWideStringField *ADOTable1DSDesigner5;
TIntegerField *ADOTable2КодКниги;
TWideStringField *ADOTable2Название;
TWideStringField *ADOTable2ФамАвтора;
TWideStringField *ADOTable2ФамСоавторов;
TWideStringField *ADOTable2МетоИздания;
TWideStringField *ADOTable2Издательство;
TSmallintField *ADOTable2ГодИздания;
TSmallintField *ADOTable2КолСтраниц;
TSmallintField *ADOTable2КолЭкземпляров;
TAutoIncField *ADOTable3КодОблЗнаний;
TStringField *ADOTable3Описание;
TIntegerField *ADOTable4КодКниги;
TIntegerField *ADOTable4КодОблЗнаний;
TAutoIncField *ADOTable5КодЧитателя;
TWideStringField *ADOTable5ФИО;
TWideStringField *ADOTable5Адресс;
TIntegerField *ADOTable5Телефон;
TWideStringField *ADOTable5ДатаРожд;
TIntegerField *ADOTable6КодЭкземпляра;
TIntegerField *ADOTable6КодКниги;
TIntegerField *ADOTable6КодИстории;
TADOQuery *ADOQuery1;
TDataSource *DataSource7;
TADOStoredProc *ADOStoredProc1;
TADOStoredProc *ADOStoredProc2;
TWideStringField *ADOQuery1ФИО;
TIntegerField *ADOQuery1КодЭкземпляра;
TWideStringField *ADOQuery1Название;
TWideStringField *ADOQuery1ДатаВыдачи;
TWideStringField *ADOQuery1ДатаВозврата;
TADOQuery *ADOQuery2;
TADOQuery *ADOQuery3;
TADOQuery *ADOQuery4;
TAutoIncField *ADOQuery1КодИстории;
TAutoIncField *ADOQuery1КодЧитателя;
TDataSource *DataSource8;
TStringField *ADOTable4ОблЗнаний;
TStringField *ADOTable4НазваниеКниги;
TStringField *ADOTable6НазваниеКниги;
TADOStoredProc *ADOStoredProc3;
TADOStoredProc *ADOStoredProc4;
TADOStoredProc *ADOStoredProc5;
private: // User declarations
public: // User declarations
__fastcall TDataModule2(TComponent* Owner);
};
//----------------------------
extern PACKAGE TDataModule2 *DataModule2;
//----------------------------
#endif
Unit2.cpp
//----------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
#include "Unit2.h"
#include "modul.h"
//----------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm2 *Form2;
//----------------------------
__fastcall TForm2::TForm2(TComponent* Owner)
: TForm(Owner)
{
}
//----------------------------
void __fastcall TForm2::Button1Click(TObject *Sender)
{
DataModule2->ADOStoredProc4->
DataModule2->ADOStoredProc4->
DataModule2->ADOStoredProc4->
if(DataModule2->
ShowMessage("Вы не верно ввели дату выдачи или дату возврата книги");
}
else{
DataModule2->ADOStoredProc3->
DataModule2->ADOStoredProc3->
DataModule2->ADOStoredProc3->
if(DataModule2->
ShowMessage("Вы ввели дату возврата раньше чем дату выдачи книги");
}
else{
DataModule2->ADOStoredProc5->
DataModule2->ADOStoredProc5->
if(DataModule2->
ShowMessage("у данного читателя 5 книг");
}
else{
if(Form1->Label2->Caption.
DataModule2->
DataModule2->
DataModule2->
DataModule2->
Form1->Label2->Caption=1;
}
else{
DataModule2->ADOStoredProc2->
DataModule2->ADOStoredProc2->
DataModule2->ADOStoredProc2->
DataModule2->ADOStoredProc2->
DataModule2->ADOStoredProc2->
DataModule2->ADOQuery1->
DataModule2->ADOQuery1->
DataModule2->ADOTable6->
DataModule2->ADOTable6->
// DataModule2->ADOQuery1->
Form1->Label2->Caption=1;
}
// DataModule2->ADOTable1->
// DataModule2->ADOTable6->
Form2->Close();
} } }
}
//----------------------------
void __fastcall TForm2::FormClose(TObject *Sender, TCloseAction &Action)
{
Form1->DBGrid1->Enabled=1;
Form1->Enabled=1;
DataModule2->ADOTable1->
DataModule2->ADOTable6->
}
//----------------------------
Unit2.h
//----------------------------
#ifndef Unit2H
#define Unit2H
//----------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <DBCtrls.hpp>
#include <Mask.hpp>
//----------------------------
class TForm2 : public TForm
{
__published: // IDE-managed Components
TDBLookupComboBox *DBLookupComboBox1;
TDBLookupComboBox *DBLookupComboBox2;
TButton *Button1;
TLabel *Label1;
TLabel *Label2;
TLabel *Label3;
TLabel *Label4;
TDBEdit *DBEdit1;
TDBEdit *DBEdit2;
TDBEdit *DBEdit3;
TDBEdit *DBEdit4;
void __fastcall Button1Click(TObject *Sender);
void __fastcall FormClose(TObject *Sender, TCloseAction &Action);
private: // User declarations
public: // User declarations
__fastcall TForm2(TComponent* Owner);
};
//----------------------------
extern PACKAGE TForm2 *Form2;
//----------------------------
#endif
Unit3.cpp
//----------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
#include "modul.h"
#include "Unit3.h"
//----------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm3 *Form3;
//----------------------------
__fastcall TForm3::TForm3(TComponent* Owner)
: TForm(Owner)
{
}
//----------------------------
void __fastcall TForm3::Button1Click(TObject *Sender)
{
DataModule2->
DataModule2->
DataModule2->
DataModule2->
DataModule2->
DataModule2->
DataModule2->
DataModule2->
Form3->Close();
}
//----------------------------
void __fastcall TForm3::FormClose(TObject *Sender, TCloseAction &Action)
{
Form1->DBGrid1->Enabled=1;
DataModule2->ADOTable2->
Form1->Enabled=1;
}
//----------------------------

- Базы данных в Excel
- Базы данных в Microsoft Access
- Базы Данных в VS 2010
- Базы данных в интернете
- Базы данных в СУБД ACCESS
- Базы данных "Выставочный комплекс" Visual FoxPro
- Базы Данных "Гостиница"
- Базы данных ACCESS
- Базы данных Asses
- Базы данных Microsoft Access
- Базы данных MySQL
- Базы данных Oracle Power Objects
- Базы данных. Аптека
- Базы данных (БД) и системы управления базами данных (СУБД)