Автор работы: Пользователь скрыл имя, 21 Февраля 2013 в 19:57, курсовая работа
Часто ли пользователю нужен полный доступ к базе? В большинстве случаев запрашивается только та информация, которая напрямую относится к его сфере деятельности. Лучшим решением может являться перенос части базы ближе к пользователям. При решении этой задачи подобным способом получается территориально распределенная (удаленная) база данных.
Организация удаленных баз данных дает ряд преимуществ: снижается время отклика системы, повышается надежность хранения данных, уменьшается стоимость аппаратной части за счет снижения объемов данных, хранящихся на одном сервере.
Введение
Глава1 Основные подходы к проектированию удаленных баз данных
1.1 Основные понятия теории реляционных баз данных
1.2 Сервер базы данных
1.2.1 Технология и модели "клиент-сервер"
Глава 2 Технологии, исползуемые в работе
Глава 3 Реализация модели учета доходов Магазина и продаваемого товара»
3 Постановка задачи
3.1 Общие технические характеристики технологии InterBase
ЗАКЛЮЧЕНИЕ
Список используемой литературы
ПРИЛОЖЕНИЯ
Схема данных
Экранные формы
Листинги программы
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(
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(
begin
frmVid.showmodal;
end;
procedure TfrmTovar.ZapTypesBeforePost(
begin
zaptypes['VID']:=zapvid['ID_
end;
procedure TfrmTovar.ZapMarkaBeforePost(
begin
zapmarka['VID']:=zapvid['ID_
end;
procedure TfrmTovar.tbltovBeforePost(
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.