Разработка приложения "Автосалон"
Характеристика программных продуктов: MySQL, MSSQL, MSAccess. Разработка базы данных в среде C++Builder. Описание таблиц и установление связей между ними. Реализация функций просмотра, добавления, редактирования БД с применением языка запросов SQL.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 13.06.2015 |
Размер файла | 393,0 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
1
Введение
В данном курсовом проекте будет спроектировнна база данных «Автосалон» по средствам СУБД MicroSoft Office Access. База данных будет хранить в себе таблицы и связи между собой, по средствам ключевых полей. Все связи будут один-к-одному и один-ко-многим чтобы не нарушалась целостность данных. В среде разрабоки C++ Builder будет разработанно приложение "Автосалон" для обслуживания одноимённой базы данных. В приложении будет реализованны возможности просмотра, добавления, редактирования и удаления базы данных. Для реализации этих функций используется язык запросов SQL.
builder таблица запрос msaccess
1. Задание
Постановка задачи
Задание:
Спроектировать базу данных «Автосалон»;
Разработать приложение «Автосалон», для базы данных «Автосалон».
2. Проектирование базы данных
2.1 Выбор СУБД
Для выполнения поставленной задачи, необходимо использовать базу данных. Т.к в данное время существует множество различных субд, необходимо подобрать подходящую, обладающую следующими условиями: сетевой интерфейс, реляционная система управления базами данных,кроссплатформенная api (c++).
Под эти критерия подходят несколько программных продуктов: MySQL, MSSQL, MSAccess. Рассмотрим каждый из них по отдельности.
2.1.1 MSSQL
MSSQL-система управления реляционными базами данных (СУРБД), разработанная корпорацией Microsoft. Основной используемый язык запросов -- Transact-SQL, создан совместно Microsoft и Sybase. Transact-SQL является реализацией стандарта ANSI/ISO по структурированному языку запросов (SQL) с расширениями. Используется для работы с базами данных размером от персональных до крупных баз данных масштаба предприятия; конкурирует с другими СУБД в этом сегменте рынка. Для организации базы данных, в этом продукте, необходимо устанавливать и настраивать сервер.
2.1.2 MySQL
MySQL -свободная реляционная система управления базами данных. Разработку и поддержку MySQL осуществляет корпорация Oracle, получившая права на торговую марку вместе с поглощённой Sun Microsystems, которая ранее приобрела шведскую компанию MySQL AB. Гибкость СУБД MySQL обеспечивается поддержкой большого количества типов таблиц: пользователи могут выбрать как таблицы типа MyISAM, поддерживающие полнотекстовый поиск, так и таблицы InnoDB, поддерживающие транзакции на уровне отдельных записей. Более того, СУБД MySQL поставляется со специальным типом таблиц EXAMPLE, демонстрирующим принципы создания новых типов таблиц. Благодаря открытой архитектуре и GPL-лицензированию, в СУБД MySQL постоянно появляются новые типы таблиц. Для организации базы данных, в этом продукте, необходимо устанавливать и настраивать сервер.
2.1.3 Microsoft Access
Microsoft Access - реляционная субд корпорации Microsoft. Имеет широкий спектр функций, включая связанные запросы, связь с внешними таблицами и базами данных. Благодаря встроенному языку VBA, в самом Access можно писать приложения, работающие с базами данных. Язык запросов Transact-SQL. Для реализации базы данных в этом программном продукте, нет необходимости устанавливать и настраивать серверную машину. Достаточно создать фаил базы.
2.2 Структура базы данных
Из выше перечисленных СУБД, более подходящая для разработки приложения «Автосалон» является MS Access. Приступим к разработке базы данных.
Рисунок 1 - ER-диаграмма
Как показано на Рисунке 1, в базе присутствует 10 таблиц. Опишем структуру каждой из них.
Таблица "Производитель" имеет 2 поля: "Код производителя" и "Название производителя". "Код производителя" имеет числовой тип, а "Название производителя" - строковый.
Таблица "Модель" имеет 3 поля: "Код модели", "Название модели" и "Код производителя (FK)". "Код модели" и "Код производителя (FK)" имеют числовой тип, а "Название модели" - строковый. "Код производителя (FK)" - внешний ключ для связи с таблицей "Производитель".
Таблица "Комплектация" имеет 7 полей: "Код комплектации", "Название комплектации", "Код модели (FK)", "Цена комплектации", "Год выпуска", "Тип привода" и "Тип топлива". "Код комплектации", "Код модели (FK)", "Цена комплектации" и "Год выпуска" имеют числовой тип, а "Название комплектации", "Тип привода" и "Тип топлива" - строковый. "Код модели (FK)" - внешний ключ для связи с таблицей "Модель".
Таблица "Цвет" имеет 3 поля: "Код цвета", "Тип цвета" и "Название цвета".
Таблица "Клиент" имеет 5 полей: "Код клиента", "Фамилия", "Имя", "Отчество" и "Телефон".
Таблица "Автомобиль" имеет 8 полей: "Код автомобиля", "Код клиента (FK)", "Код цвета (FK)", "Код комплектации (FK)", "Дата продажи", "Тип покупки", "Ежемесячный платёж" и "Количество месяцев рассрочки".
Таблица "Тип аксессуара" имеет 2 поля: "Код типа аксессуара" и "Название типа аксессуара".
Таблица "Аксессуар" имеет 5 полей: "Код аксессуара", "Код типа аксессуара (FK)", "Код модели (FK)", "Название аксессуара" и "Цена аксессуара".
Таблица "Заявка" имеет 3 поля: "Код заявки", "Код клиента (FK)" и "Дата заявки".
Таблица "Проданный аксессуар" имеет 4 поля: "Код продажи аксессуара", "Код аксессуара (FK)", "Код заявки (FK)" и "Количество".
3. Разработка интерфейса
3.1 Среда разработки
C++ Builder -программный продукт, инструмент быстрой разработки приложений (RAD), интегрированная среда программирования (IDE), система, используемая программистами для разработки программного обеспечения на языке программирования C++.Изначально разрабатывался компанией Borland Software, а затем её подразделением CodeGear, ныне принадлежащим компании Embarcadero Technologies.C++ Builder объединяет в себе комплекс объектных библиотек (STL, VCL, CLX, MFC и др.), компилятор, отладчик, редактор кода и многие другие компоненты. Цикл разработки аналогичен Delphi. Большинство компонентов, разработанных в Delphi, можно использовать и в C++ Builder без модификации, но обратное утверждение не верно.C++ Builder содержит инструменты, которые при помощи drag-and-drop действительно делают разработку визуальной, упрощает программирование благодаря встроенному WYSIWYG -- редактору интерфейса и пр.
3.2 Приложение «Автосалон»
Для реализации на BorlandC++ Builder 6.0, нам потребуются несколько компонентов из разных палитр компонентов. Перечислим их ниже:
- вкладка ADO, компонент TADOQuery;
- вкладка ADO, компонент TADOConnection;
- вкладка Additional, компонентTImage;
- вкладка Standart, компонент TEdit;
- вкладка Standart, компонент TButton;
- вкладка Standart, компонент TLabel;
- вкладка Standart, компонент TComboBox.
3.2.1 Главный экран программы
Главный экран программы загружается при открытии программы. Он содержит кнопки для перехода по вкладкам. Каждой кнопке соответствует вкладка с таким же именем.
Рисунок 2 - Главный экран программы
3.2.2 Экран подключения базы данных
Экран подключения базы данных окрывается в том случае, если файл базы данных не был обнаружен. Этот экран позволяет подключить недостащий файл.
Рисунок 3 - Экран подключения базы данных
При нажатии на кнопку "..." открывается окно выбора файла:
Рисунок 4 - Окно выбора файла базы данных
При нажатии на кнопку "Подключить" запускается процедура подключения базы данных и привязка таблиц БД к объектам программы.
3.2.3 Экран "Производители"
Экран "Производители" содержит всю информацию о производителях автомобилей. Эта информация представлена с помощью объектов TDBGrid и TImage. В TDBGrid содержатся названия производителей. С помощью этого объекта можно перемещаться между производителями. При перемещении в объекте TImage отоброжается логотип производителя, который берется из файла формата BMP. Если файл с изображением отсутствует то логотип заменяется на стандартное изображение.
Рисунок 5 - Эран "Производители"
Рисунок 6 - Эран "Производители" при отсутствии логотипа
3.2.4 Экран "Клиенты"
Экран "Клиенты" содержит информацию о клиентах. Вся информация находится в объекте типа TDBGrid.
Рисунок 7 - Экран "Клиенты"
3.2.5 Экран "Цвета"
Экран "Цвета" содержит информацию о цветах. Вся информация находится в объекте типа TDBGrid.
Рисунок 8 - Экран "Цвета"
3.2.6 Экран "Модель"
Экран "Модель" содержит информацию о клиентах. Вся информация находится в объекте типа TDBGrid.
Рисунок 9 - Экран "Модель"
Заключение
При выполнении курсового проекта освоил навыки разработки приложения в среде C++ Builder, научился проектировать базы данных, устанавливать связи между таблицами. Разобрался с компонентами C++ Builder для работы с данными из таблиц БД. Научился строить запросы при помощи языка SQL.
Использованные программные средства
1) MSAccess;
2) Borland C++ Builder 6.0;
3) Текстовый процессор MSWord.
Приложение А
Листинг программы
1) Модуль проекта
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
//---------------------------------------------------------------------------
USEFORM("MainUnit.cpp", MainForm);
USEFORM("DataBaseDataModuleUnit.cpp", DataBaseDataModule); /* TDataModule: File Type */
USEFORM("DialogsDataModuleUnit.cpp", DialogsDataModule); /* TDataModule: File Type */
USEFORM("PreviewUnit.cpp", PreviewForm);
//---------------------------------------------------------------------------
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
try
{
Application->Initialize();
Application->CreateForm(__classid(TMainForm), &MainForm);
Application->CreateForm(__classid(TDataBaseDataModule), &DataBaseDataModule);
Application->CreateForm(__classid(TDialogsDataModule), &DialogsDataModule);
Application->CreateForm(__classid(TPreviewForm), &PreviewForm);
Application->Run();
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
catch (...)
{
try
{
throw Exception("");
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
}
return 0;
}
//---------------------------------------------------------------------------
2) Модуль главной формы
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "MainUnit.h"
#include "DataBaseDataModuleUnit.h"
#include "DialogsDataModuleUnit.h"
#include "FunctionsUnit.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TMainForm *MainForm;
//---------------------------------------------------------------------------
AnsiString DoubleSlash (AnsiString str);
void DataBaseConnection (AnsiString Path);
void ManufacturerButtonVisibleFalseAddEditDeleteTruePostCancel(TButton * ManufacturerAddButton, TButton * ManufacturerEditButton, TButton * ManufacturerDeleteButton, TButton * ManufacturerPostButton, TButton * ManufacturerCancelButton);
void ManufacturerButtonVisibleTrueAddEditDeleteFalsePostCancel(TButton * ManufacturerAddButton, TButton * ManufacturerEditButton, TButton * ManufacturerDeleteButton, TButton * ManufacturerPostButton, TButton * ManufacturerCancelButton);
//---------------------------------------------------------------------------
__fastcall TMainForm::TMainForm(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::FormCreate(TObject *Sender)
{
MainForm->Position = poDesktopCenter;
PageControl->ActivePage = MainTabSheet;
if(!(DirectoryExists("Files")))
{
MkDir("Files");
}
if(!(DirectoryExists("Files\\DataBase")))
{
MkDir("Files\\DataBase");
}
}
//---------------------------------------------------------------------------
//-----Закрытие программы:
void __fastcall TMainForm::FormCloseQuery(TObject *Sender, bool &CanClose)
{
if(Application->MessageBox("Вы действительно хотите закрыть программу?","Выход",MB_YESNO + MB_ICONSTOP)==IDYES)
{
CanClose = True;
}
else
{
CanClose = False;
}
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::DataBaseFilePathOpenDialogExecuteButtonClick(
TObject *Sender)
{
if(DialogsDataModule->DataBaseFilePathOpenDialog->Execute())
{
FilePathEdit->Text = DialogsDataModule->DataBaseFilePathOpenDialog->FileName;
}
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::FormShow(TObject *Sender)
{
DataBaseConnection("D:\\Projects\\BuilderProjects\\CarShop\\Files\\DataBase\\CarShopDataBase.mdb");
ManufacturerDBGrid->DataSource = DataBaseDataModule->ManufacturerDataSource;
ManufacturerDBGrid->Options = TDBGridOptions(ManufacturerDBGrid->Options) >> dgEditing >> dgIndicator >> dgColumnResize;
//ManufacturerDBGrid->Columns->Add();
//ManufacturerDBGrid->Columns->Add();
//ManufacturerDBGrid->Columns->Add();
//ManufacturerDBGrid->Columns->Items[0]->FieldName = "Title_Manufacturer";
//ManufacturerDBGrid->Columns->Items[0]->Title->Caption = "Название";
//ManufacturerDBGrid->Columns->Items[1]->Title->Caption = "Количество моделей";
//ManufacturerDBGrid->Columns->Items[2]->Title->Caption = "Количество автомобилей";
ManufacturerDBGrid->Columns->Items[0]->Width = (ManufacturerDBGrid->Width - 40)/3;
ManufacturerDBGrid->Columns->Items[1]->Visible = False;
//ManufacturerDBGrid->Columns->Items[1]->Width = (ManufacturerDBGrid->Width - 40)/3;
//ManufacturerDBGrid->Columns->Items[2]->Width = (ManufacturerDBGrid->Width - 40)/3;
//DataBaseDataModule->ManufacturerADOTable->Sort = "Title_Manufacturer ASC";
ModelDBGrid->DataSource = DataBaseDataModule->ModelDataSource;
ModelDBGrid->Options = TDBGridOptions(ModelDBGrid->Options) >> dgEditing >> dgIndicator >> dgColumnResize;
ModelDBGrid->Columns->Items[0]->Width = (ModelDBGrid->Width - 40)/2;
ModelDBGrid->Columns->Items[1]->Width = (ModelDBGrid->Width - 40)/2;
ColorDBGrid->DataSource = DataBaseDataModule->ColorDataSource;
ColorDBGrid->Options = TDBGridOptions(ColorDBGrid->Options) >> dgEditing >> dgIndicator >> dgColumnResize;
ColorDBGrid->Columns->Add();
ColorDBGrid->Columns->Add();
ColorDBGrid->Columns->Items[0]->FieldName = "Type_of_Color";
ColorDBGrid->Columns->Items[1]->FieldName = "Title_Color";
ColorDBGrid->Columns->Items[0]->Title->Caption = "Тип";
ColorDBGrid->Columns->Items[1]->Title->Caption = "Название";
ColorDBGrid->Columns->Items[0]->Width = (ColorDBGrid->Width - 40)/2;
ColorDBGrid->Columns->Items[1]->Width = (ColorDBGrid->Width - 40)/2;
ClientDBGrid->DataSource = DataBaseDataModule->ClientDataSource;
ClientDBGrid->Options = TDBGridOptions(ClientDBGrid->Options) >> dgEditing >> dgIndicator >> dgColumnResize;
ClientDBGrid->Columns->Add();
ClientDBGrid->Columns->Add();
ClientDBGrid->Columns->Add();
ClientDBGrid->Columns->Add();
ClientDBGrid->Columns->Items[0]->FieldName = "Forename";
ClientDBGrid->Columns->Items[1]->FieldName = "Surname";
ClientDBGrid->Columns->Items[2]->FieldName = "Patronymic";
ClientDBGrid->Columns->Items[3]->FieldName = "Telephone_number";
ClientDBGrid->Columns->Items[0]->Title->Caption = "Фамилия";
ClientDBGrid->Columns->Items[1]->Title->Caption = "Имя";
ClientDBGrid->Columns->Items[2]->Title->Caption = "Отчество";
ClientDBGrid->Columns->Items[3]->Title->Caption = "Телефон";
ClientDBGrid->Columns->Items[0]->Width = (ClientDBGrid->Width - 40)/4;
ClientDBGrid->Columns->Items[1]->Width = (ClientDBGrid->Width - 40)/4;
ClientDBGrid->Columns->Items[2]->Width = (ClientDBGrid->Width - 40)/4;
ClientDBGrid->Columns->Items[3]->Width = (ClientDBGrid->Width - 40)/4;
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::DataBaseConnectButtonClick(TObject *Sender)
{
DataBaseConnection(DoubleSlash(FilePathEdit->Text));
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::ManufacturerEditButtonClick(TObject *Sender)
{
ManufacturerButtonVisibleFalseAddEditDeleteTruePostCancel(ManufacturerAddButton, ManufacturerEditButton, ManufacturerDeleteButton, ManufacturerPostBitBtn, ManufacturerCancelBitBtn);
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::ManufacturerDeleteButtonClick(TObject *Sender)
{
ManufacturerButtonVisibleFalseAddEditDeleteTruePostCancel(ManufacturerAddButton, ManufacturerEditButton, ManufacturerDeleteButton, ManufacturerPostBitBtn, ManufacturerCancelBitBtn);
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::ManufacturerDBGridTitleClick(TColumn *Column)
{ /*
if(Column->FieldName == "Название")
{
DataBaseDataModule->ManufacturerADOQuery->Active = False;
DataBaseDataModule->ManufacturerADOQuery->SQL->Clear();
if(Edit1->Text != "SELECT Title_Manufacturer AS Название, Logo FROM Manufacturer ORDER BY Title_Manufacturer ASC")
{
DataBaseDataModule->ManufacturerADOQuery->SQL->Add("SELECT Title_Manufacturer AS Название, Logo FROM Manufacturer ORDER BY Title_Manufacturer DESC");
}
else
{
DataBaseDataModule->ManufacturerADOQuery->SQL->Add("SELECT Title_Manufacturer AS Название, Logo FROM Manufacturer ORDER BY Title_Manufacturer ASC");
}
DataBaseDataModule->ManufacturerADOQuery->Open();
DataBaseDataModule->ManufacturerADOQuery->Active = True;
ManufacturerDBGrid->Columns->Items[0]->Width = (ManufacturerDBGrid->Width - 40)/3;
} */
/*if(AnsiString(DataBaseDataModule->ManufacturerADOTable->Sort) == "Title_Manufacturer ASC")
{
DataBaseDataModule->ManufacturerADOTable->Sort = "Title_Manufacturer DESC";
}
else
{
DataBaseDataModule->ManufacturerADOTable->Sort = "Title_Manufacturer ASC";
}
*/
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::ManufacturerPostBitBtnClick(TObject *Sender)
{
ManufacturerButtonVisibleTrueAddEditDeleteFalsePostCancel(ManufacturerAddButton, ManufacturerEditButton, ManufacturerDeleteButton, ManufacturerPostBitBtn, ManufacturerCancelBitBtn);
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::ManufacturerCancelBitBtnClick(TObject *Sender)
{
ManufacturerButtonVisibleTrueAddEditDeleteFalsePostCancel(ManufacturerAddButton, ManufacturerEditButton, ManufacturerDeleteButton, ManufacturerPostBitBtn, ManufacturerCancelBitBtn);
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::ManufacturerButtonClick(TObject *Sender)
{
PageControl->ActivePage = ManufacturerTabSheet;
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::ModelButtonClick(TObject *Sender)
{
PageControl->ActivePage = ModelTabSheet;
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::ClientButtonClick(TObject *Sender)
{
PageControl->ActivePage = ClientTabSheet;
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::CarButtonClick(TObject *Sender)
{
PageControl->ActivePage = CarTabSheet;
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::GradeButtonClick(TObject *Sender)
{
PageControl->ActivePage = GradeTabSheet;
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::AccessoryButtonClick(TObject *Sender)
{
PageControl->ActivePage = AccessoryTabSheet;
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::ColorButtonClick(TObject *Sender)
{
PageControl->ActivePage = ColorTabSheet;
}
//---------------------------------------------------------------------------
3) Модуль данных базы данных
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "DataBaseDataModuleUnit.h"
#include "MainUnit.h"
#include "FunctionsUnit.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TDataBaseDataModule *DataBaseDataModule;
//---------------------------------------------------------------------------
AnsiString DoubleSlash (AnsiString str);
//---------------------------------------------------------------------------
__fastcall TDataBaseDataModule::TDataBaseDataModule(TComponent* Owner)
: TDataModule(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TDataBaseDataModule::ManufacturerADOTableAfterScroll(
TDataSet *DataSet)
{
/*if(DataSet->FieldByName("Logo")->AsString != "")
{
MainForm->ManufacturerLogoImage->Picture->LoadFromFile(DoubleSlash(ExtractFilePath(Application->ExeName))+"Files"+String(Char(92))+String(Char(92))+"Pictures"+String(Char(92))+String(Char(92))+"ManufacturerLogos"+String(Char(92))+String(Char(92))+DoubleSlash(DataSet->FieldByName("Logo")->AsString));
}
else
{
MainForm->ManufacturerLogoImage->Picture->LoadFromFile(DoubleSlash(ExtractFilePath(Application->ExeName))+"Files"+String(Char(92))+String(Char(92))+"Pictures"+String(Char(92))+String(Char(92))+"ManufacturerLogos"+String(Char(92))+String(Char(92))+"nologo.bmp");
} */
}
//---------------------------------------------------------------------------
void __fastcall TDataBaseDataModule::ManufacturerADOQueryAfterScroll(
TDataSet *DataSet)
{
if(ManufacturerADOQuery->Active == True) {
if(DataSet->FieldByName("Logo")->AsString != "")
{
MainForm->ManufacturerLogoImage->Picture->LoadFromFile(DoubleSlash(ExtractFilePath(Application->ExeName))+"Files"+String(Char(92))+String(Char(92))+"Pictures"+String(Char(92))+String(Char(92))+"ManufacturerLogos"+String(Char(92))+String(Char(92))+DoubleSlash(DataSet->FieldByName("Logo")->AsString));
}
else
{
MainForm->ManufacturerLogoImage->Picture->LoadFromFile(DoubleSlash(ExtractFilePath(Application->ExeName))+"Files"+String(Char(92))+String(Char(92))+"Pictures"+String(Char(92))+String(Char(92))+"ManufacturerLogos"+String(Char(92))+String(Char(92))+"nologo.bmp");
} }
}
//---------------------------------------------------------------------------
4) Модуль данных диалогов
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "DialogsDataModuleUnit.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TDialogsDataModule *DialogsDataModule;
//---------------------------------------------------------------------------
__fastcall TDialogsDataModule::TDialogsDataModule(TComponent* Owner)
: TDataModule(Owner)
{
}
//---------------------------------------------------------------------------
5) Модуль функций
//---------------------------------------------------------------------------
#pragma hdrstop
#include "FunctionsUnit.h"
#include "DataBaseDataModuleUnit.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
//---------------------------------------------------------------------------
AnsiString DoubleSlash (AnsiString str)
{
return StringReplace(str, String(Char(92)), String(Char(92))+String(Char(92)), TReplaceFlags()<<rfReplaceAll);
}
//---------------------------------------------------------------------------
void DataBaseConnection (AnsiString Path)
{
DataBaseDataModule->ADOConnection->Connected = False;
DataBaseDataModule->ADOConnection->ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Path+";Persist Security Info=False";
DataBaseDataModule->ADOConnection->LoginPrompt = False;
DataBaseDataModule->ADOConnection->Connected = True;
//DataBaseDataModule->ManufacturerADOTable->Connection = DataBaseDataModule->ADOConnection;
//DataBaseDataModule->ManufacturerADOTable->TableName = "Manufacturer";
//DataBaseDataModule->ManufacturerADOTable->Active = True;
//DataBaseDataModule->ManufacturerDataSource->DataSet = DataBaseDataModule->ManufacturerADOTable;
DataBaseDataModule->ManufacturerADOQuery->Connection = DataBaseDataModule->ADOConnection;
DataBaseDataModule->ManufacturerADOQuery->Active = False;
DataBaseDataModule->ManufacturerADOQuery->SQL->Clear();
DataBaseDataModule->ManufacturerADOQuery->SQL->Add("SELECT Title_Manufacturer As Название, Logo FROM Manufacturer ORDER BY Title_Manufacturer");
DataBaseDataModule->ManufacturerADOQuery->Open();
DataBaseDataModule->ManufacturerADOQuery->Active = True;
DataBaseDataModule->ManufacturerDataSource->DataSet = DataBaseDataModule->ManufacturerADOQuery;
DataBaseDataModule->ModelADOQuery->Connection = DataBaseDataModule->ADOConnection;
DataBaseDataModule->ModelADOQuery->Active = False;
DataBaseDataModule->ModelADOQuery->SQL->Clear();
DataBaseDataModule->ModelADOQuery->SQL->Add("SELECT Manufacturer.Title_Manufacturer As [Название производителя], Model.Title_Model AS [Название модели] FROM Manufacturer, Model WHERE Manufacturer.Code_Manufacturer = Model.FK_Code_Manufacturer");
DataBaseDataModule->ModelADOQuery->Open();
DataBaseDataModule->ModelADOQuery->Active = True;
DataBaseDataModule->ModelDataSource->DataSet = DataBaseDataModule->ModelADOQuery;
DataBaseDataModule->ColorADOTable->Active = False;
DataBaseDataModule->ColorADOTable->Connection = DataBaseDataModule->ADOConnection;
DataBaseDataModule->ColorADOTable->TableName = "Color";
DataBaseDataModule->ColorADOTable->Active = True;
DataBaseDataModule->ColorDataSource->DataSet = DataBaseDataModule->ColorADOTable;
DataBaseDataModule->ClientADOTable->Active = False;
DataBaseDataModule->ClientADOTable->Connection = DataBaseDataModule->ADOConnection;
DataBaseDataModule->ClientADOTable->TableName = "Client";
DataBaseDataModule->ClientADOTable->Active = True;
DataBaseDataModule->ClientDataSource->DataSet = DataBaseDataModule->ClientADOTable;
}
//---------------------------------------------------------------------------
void ManufacturerButtonVisibleFalseAddEditDeleteTruePostCancel(TButton * ManufacturerAddButton, TButton * ManufacturerEditButton, TButton * ManufacturerDeleteButton, TButton * ManufacturerPostButton, TButton * ManufacturerCancelButton)
{
ManufacturerAddButton->Visible = False;
ManufacturerEditButton->Visible = False;
ManufacturerDeleteButton->Visible = False;
ManufacturerPostButton->Visible = True;
ManufacturerCancelButton->Visible = True;
}
//---------------------------------------------------------------------------
void ManufacturerButtonVisibleTrueAddEditDeleteFalsePostCancel(TButton * ManufacturerAddButton, TButton * ManufacturerEditButton, TButton * ManufacturerDeleteButton, TButton * ManufacturerPostButton, TButton * ManufacturerCancelButton)
{
ManufacturerAddButton->Visible = True;
ManufacturerEditButton->Visible = True;
ManufacturerDeleteButton->Visible = True;
ManufacturerPostButton->Visible = False;
ManufacturerCancelButton->Visible = False;
}
//---------------------------------------------------------------------------
Размещено на Allbest.ru
Подобные документы
Основные этапы разработки базы данных "Постоянные покупатели" в среде MsAccess. Создание таблиц и организация связей между ними. Формирование запросов; их вид в режиме SQL. Создание форм как специальных объектов, предназначенных для просмотра данных.
контрольная работа [700,2 K], добавлен 16.10.2014Выделение основных сущностей проектируемой системы, описание их взаимосвязи. Построение базы данных и приложений: разработка таблиц и связей между ними, локальных представлений данных, форм, запросов, меню. Инструкция для работы пользователя с программой.
курсовая работа [380,9 K], добавлен 06.04.2015Разработка информационной базы данных "Поликлиника" с возможностью просмотра, редактирования, добавления сведений и получения результатов запросов. Создание механизмов управления данными при помощи триггеров. Проектирование пользовательского приложения.
курсовая работа [2,0 M], добавлен 21.06.2011Анализ предметной области с использованием моделей методологии ARIS и разработка ER-диаграммы. Описание входной и выходной информации для проектирования реляционной базы данных. Разработка управляющих запросов и связей между ними с помощью языка SQL.
курсовая работа [975,2 K], добавлен 30.01.2014Проектирование базы данных для удобства работы организатора и систематизации различных конференций. Создание таблиц в режиме конструктора и установление связей между ними, запросов, форм для ввода данных, главной кнопочной формы, макросов и отчетов.
курсовая работа [2,3 M], добавлен 25.10.2014Создание вспомогательных таблиц (шлифование, обрабатываемый материал, зернистость, твердость) и основной таблицы с помощью приложения Microsoft Access. Установление связей между ними. Формирование запросов с отбором данных, разработка форм и отчетов.
курсовая работа [944,6 K], добавлен 17.03.2015Компоненты реляционной базы данных Microsoft Access. Создание структуры таблиц и определение связей между ними. Проектирование форм для сводных таблиц и запросов с помощью конструктора окон. Разработка и создание автоотчетов и запросов на выборку данных.
реферат [3,3 M], добавлен 29.01.2011Общая характеристика и состав информационных запросов к проектируемой базе данных, требования к ней и внутренняя структура, принципы нормализации и разработка логической модели. Создание таблиц и связей между ними. Язык структурированных запросов.
курсовая работа [985,6 K], добавлен 22.05.2014Построение концептуальной модели. Создание таблиц, входящих в состав базы данных. Разработка основных запросов, отчетов о количестве учеников в данном классе и работе школы; форм для просмотра и редактирования данных в программе Microsoft Access.
курсовая работа [2,7 M], добавлен 08.05.2015Разработка программного продукта - базы данных "Экскурсия" в интегрированной среде программирования C++ Builder 6. Определение порядка просмотра данных базы, их редактирования и удаления. Особенности руководства пользователя и общего интерфейса программы.
курсовая работа [2,4 M], добавлен 03.11.2013