Разработка и создание удаленной базы данных для автоматизации учета и отчетности в гостиничном комплексе “Ирина” на основе клиент-серве

Автор работы: Пользователь скрыл имя, 21 Февраля 2013 в 19:57, курсовая работа

Краткое описание

Часто ли пользователю нужен полный доступ к базе? В большинстве случаев запрашивается только та информация, которая напрямую относится к его сфере деятельности. Лучшим решением может являться перенос части базы ближе к пользователям. При решении этой задачи подобным способом получается территориально распределенная (удаленная) база данных.
Организация удаленных баз данных дает ряд преимуществ: снижается время отклика системы, повышается надежность хранения данных, уменьшается стоимость аппаратной части за счет снижения объемов данных, хранящихся на одном сервере.

Содержание

Введение
Глава1 Основные подходы к проектированию удаленных баз данных
1.1 Основные понятия теории реляционных баз данных
1.2 Сервер базы данных
1.2.1 Технология и модели "клиент-сервер"
Глава 2 Технологии, исползуемые в работе
Глава 3 Реализация модели учета доходов Магазина и продаваемого товара»
3 Постановка задачи
3.1 Общие технические характеристики технологии InterBase
ЗАКЛЮЧЕНИЕ
Список используемой литературы
ПРИЛОЖЕНИЯ
Схема данных
Экранные формы
Листинги программы

Прикрепленные файлы: 1 файл

klient.doc

— 493.50 Кб (Скачать документ)

FieldName = 'SDACHA'

Origin = 'KASSA.SDACHA'

Required = True

currency = True

end

object tblKassaPRIB: TFloatField

FieldKind = fkInternalCalc

FieldName = 'PRIB'

Origin = 'KASSA.PRIB'

ReadOnly = True

currency = True

end

object tblKassaRABOT: TIntegerField

FieldName = 'RABOT'

Origin = 'KASSA.RABOT'

end

end

object UpdKass: TIBUpdateSQL

RefreshSQL.Strings = (

'Select '

' ID_KASSA,'

' DATA,'

' VREMA,'

' PRINATO,'

' SDACHA,'

' PRIB,'

' RABOT'

'from KASSA '

'where'

' ID_KASSA = :ID_KASSA')

ModifySQL.Strings = (

'update KASSA'

'set'

' ID_KASSA = :ID_KASSA,'

' DATA = :DATA,'

' VREMA = :VREMA,'

' PRINATO = :PRINATO,'

' SDACHA = :SDACHA,'

' PRIB = :PRIB,'

' RABOT = :RABOT'

'where'

' ID_KASSA = :OLD_ID_KASSA')

InsertSQL.Strings = (

'insert into KASSA'

' (ID_KASSA, DATA, VREMA, PRINATO, SDACHA, PRIB, RABOT)'

'values'

' (:ID_KASSA, :DATA, :VREMA, :PRINATO, :SDACHA, :PRIB, :RABOT)')

DeleteSQL.Strings = (

'delete from KASSA'

'where'

' ID_KASSA = :OLD_ID_KASSA')

Left = 224

Top = 298

end

object tblProdan: TIBQuery

Database = frmMain.Baza

Transaction = frmMain.Tranz

BufferChunks = 1000

CachedUpdates = False

SQL.Strings = (

'select * from PRODANOE')

UpdateObject = UpdProdan

GeneratorField.Field = 'ID_PRODAN'

GeneratorField.Generator = 'GEN_PRODANOE_ID'

GeneratorField.ApplyEvent = gamOnPost

Left = 312

Top = 304

object tblProdanID_PRODAN: TIntegerField

FieldName = 'ID_PRODAN'

Origin = 'PRODANOE.ID_PRODAN'

Required = True

end

object tblProdanDATA: TDateField

FieldName = 'DATA'

Origin = 'PRODANOE.DATA'

Required = True

end

object tblProdanNAIM: TIBStringField

FieldName = 'NAIM'

Origin = 'PRODANOE.NAIM'

Size = 150

end

object tblProdanKOL_VO: TFloatField

FieldName = 'KOL_VO'

Origin = 'PRODANOE.KOL_VO'

Required = True

end

object tblProdanSUMMA: TFloatField

FieldName = 'SUMMA'

Origin = 'PRODANOE.SUMMA'

Required = True

end

object tblProdanVREMA: TTimeField

FieldName = 'VREMA'

Origin = 'PRODANOE.VREMA'

Required = True

end

object tblProdanRABOT: TIntegerField

FieldName = 'RABOT'

Origin = 'PRODANOE.RABOT'

Required = True

end

end

object UpdProdan: TIBUpdateSQL

RefreshSQL.Strings = (

'Select '

' ID_PRODAN,'

' DATA,'

' NAIM,'

' KOL_VO,'

' SUMMA,'

' VREMA,'

' RABOT'

'from PRODANOE '

'where'

' ID_PRODAN = :ID_PRODAN')

ModifySQL.Strings = (

'update PRODANOE'

'set'

' ID_PRODAN = :ID_PRODAN,'

' DATA = :DATA,'

' NAIM = :NAIM,'

' KOL_VO = :KOL_VO,'

' SUMMA = :SUMMA,'

' VREMA = :VREMA,'

' RABOT = :RABOT'

'where'

' ID_PRODAN = :OLD_ID_PRODAN')

InsertSQL.Strings = (

'insert into PRODANOE'

' (ID_PRODAN, DATA, NAIM, KOL_VO, SUMMA, VREMA, RABOT)'

'values'

' (:ID_PRODAN, :DATA, :NAIM, :KOL_VO, :SUMMA, :VREMA, :RABOT)')

DeleteSQL.Strings = (

'delete from PRODANOE'

'where'

' ID_PRODAN = :OLD_ID_PRODAN')

Left = 280

Top = 304

end

end

Модуль prodan:

unit prodan;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, Grids, DBGrids, StdCtrls, DB, IBCustomDataSet, IBUpdateSQL,

IBQuery, DBCtrls, Buttons; type

TfrmKassa = class(TForm)

srcKassa: TDataSource;

GroupBox1: TGroupBox;

DBGrid1: TDBGrid;

Label1: TLabel;

zapSum: TIBQuery;

DataSource1: TDataSource;

tblKassa: TIBQuery;

DBText1: TDBText;

Label2: TLabel;

zp: TLabel;

lp: TLabel;

SpeedButton1: TSpeedButton;

tblKassaID_KASSA: TIntegerField;

tblKassaDATA: TDateField;

tblKassaVREMA: TTimeField;

tblKassaPRINATO: TFloatField;

tblKassaSDACHA: TFloatField;

tblKassaPRIB: TFloatField;

tblKassaRABOT: TIntegerField;

tblKassaFIO: TIBStringField;

zapSumSUMMA: TCurrencyField;

procedure FormActivate(Sender: TObject);

procedure SpeedButton1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

frmKassa: TfrmKassa;

implementation

uses main, otch;

{$R *.dfm}

procedure TfrmKassa.FormActivate(Sender: TObject);

var a,b:variant;

begin

zapsum.Close;

zapsum.Open;

a:=dbtext1.Caption;

b:=0.10;

tblkassa.Close;

tblkassa.Open;

if tblkassa.IsEmpty=false then

zp.Caption:=a*b;

if Length(zp.Caption)=0 then

lp.Left:=400

else if Length(zp.Caption)=1 then

lp.Left:=400

else if Length(zp.Caption)=2 then

lp.Left:=420

else if Length(zp.Caption)=3 then

lp.Left:=440

else if Length(zp.Caption)=4 then

lp.Left:=460

else if Length(zp.Caption)=5 then

lp.Left:=480

else if Length(zp.Caption)>5 then

lp.Left:=520;

end;

procedure TfrmKassa.SpeedButton1Click(Sender: TObject);

begin

form1.zap.Caption:=zp.caption;

if Length(form1.zap.Caption)=0 then

form1.lp.Left:=610

else if Length(form1.zap.Caption)=1 then

form1.lp.Left:=610

else if Length(form1.zap.Caption)=2 then

form1.lp.Left:=630

else if Length(form1.zap.Caption)=3 then

form1.lp.Left:=650

else if Length(form1.zap.Caption)=4 then

form1.lp.Left:=670

else if Length(form1.zap.Caption)=5 then

form1.lp.Left:=690

else if Length(form1.zap.Caption)>5 then

form1.lp.Left:=720;

form1.quickrep1.preview;

end;

end.

Модуль tovars:

unit tovars;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, DB, IBCustomDataSet, IBQuery, DBCtrls, StdCtrls, IBTable, Grids,

DBGrids, Mask, IBUpdateSQL, ExtCtrls, Buttons;

type

TfrmTovar = class(TForm)

SrcZapVid: TDataSource;

GroupBox1: TGroupBox;

Label1: TLabel;

pa: TDBLookupComboBox;

Label2: TLabel;

srcZapType: TDataSource;

Label3: TLabel;

srcmarka: TDataSource;

zapVid: TIBQuery;

ZapTypes: TIBQuery;

ZapMarka: TIBQuery;

GroupBox2: TGroupBox;

DBGrid1: TDBGrid;

Label4: TLabel;

Model: TDBEdit;

Label5: TLabel;

Xar: TDBEdit;

Label6: TLabel;

St: TDBEdit;

srcTov: TDataSource;

DBNavigator1: TDBNavigator;

GroupBox3: TGroupBox;

SpeedButton1: TSpeedButton;

tbltov: TIBQuery;

UpdTov: TIBUpdateSQL;

UpdVid: TIBUpdateSQL;

updtype: TIBUpdateSQL;

UpdMarka: TIBUpdateSQL;

pc: TDBLookupComboBox;

tbltovID_TOVAR: TIntegerField;

tbltovVID: TIntegerField;

tbltovTYPE_T: TIntegerField;

tbltovMARKA: TIntegerField;

tbltovNAIM: TIBStringField;

tbltovMODEL: TIBStringField;

tbltovXARAKTER: TIBStringField;

tbltovSTOIMOST: TFloatField;

ZapTypesID_TYPE: TIntegerField;

ZapTypesNAIM: TIBStringField;

ZapTypesVID: TIntegerField;

ZapMarkaID_MARKA: TIntegerField;

ZapMarkaNAIM: TIBStringField;

ZapMarkaVID: TIntegerField;

pb: TDBLookupComboBox;

procedure SpeedButton1Click(Sender: TObject);

procedure ZapTypesBeforePost(DataSet: TDataSet);

procedure ZapMarkaBeforePost(DataSet: TDataSet);

procedure tbltovBeforePost(DataSet: TDataSet);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure FormActivate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

frmTovar: TfrmTovar;

implementation

uses main, vids;

{$R *.dfm}

procedure TfrmTovar.SpeedButton1Click(Sender: TObject);

begin

frmVid.showmodal;

end;

procedure TfrmTovar.ZapTypesBeforePost(DataSet: TDataSet);

begin

zaptypes['VID']:=zapvid['ID_VID'];

end;

procedure TfrmTovar.ZapMarkaBeforePost(DataSet: TDataSet);

begin

zapmarka['VID']:=zapvid['ID_VID'];

end;

procedure TfrmTovar.tbltovBeforePost(DataSet: TDataSet);

begin

if Length(model.Text)=0 then

begin

tbltov['model']:=' ';

end;

if Length(xar.Text)=0 then

begin

tbltov['xarakter']:=' ';

end;

tbltov['NAIM']:=pa.Text+' '+pc.Text+' '+pb.Text+' '+model.Text+' '+xar.Text;

end;

procedure TfrmTovar.FormClose(Sender: TObject; var Action: TCloseAction);

begin

zapVid.Close;

ZapTypes.Close;

ZapMarka.Close;

tbltov.Close;

end;

procedure TfrmTovar.FormActivate(Sender: TObject);

begin

tbltov.Open;

zapVid.Open;

ZapTypes.Open;

ZapMarka.Open;

end;

end.

 

 

Модуль vids:

unit vids;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, ExtCtrls, DBCtrls, StdCtrls, Mask, Grids, DBGrids;

type

TfrmVid = class(TForm)

Box: TGroupBox;

Label8: TLabel;

Label9: TLabel;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Types: TDBGrid;

marki: TDBGrid;

DBVid: TDBEdit;

navVid: TDBNavigator;

DBGrid1: TDBGrid;

DBtyp: TDBEdit;

DBNavigator1: TDBNavigator;

DBMarka: TDBEdit;

DBNavigator2: TDBNavigator;

private

{ Private declarations }

public

{ Public declarations }

end;

var

frmVid: TfrmVid;

implementation

uses tovars;

{$R *.dfm}

end.


Информация о работе Разработка и создание удаленной базы данных для автоматизации учета и отчетности в гостиничном комплексе “Ирина” на основе клиент-серве