Смекни!
smekni.com

Создание базы данных "РЭО-ГАИ" (стр. 3 из 4)

SELECT [№автомобиля], [№двигателя]

FROM Автомобили

WHERE [№двигателя] LIKE '%111%';

Запрос 3. Вычислить "возраст" каждого из автомобилей, стоящих на учете на текущую дату.

SELECT Движение. [№автомобиля], 'Возраст =', datediff (yy, Автомобили. [Дата выпуска],getdate ())

FROM Движение, Автомобили, Операции

WHERE Автомобили. [№автомобиля] =Движение. [№автомобиля]

and Операции. [Код операции] =Движение. [Код операции]

and Операции. [Наименование] like '%постан%'

and [Дата операции] < getdate ();

Запрос 4. Какие операции проводились с автомобилями по <i-му> району учета в текущем месяце.

SELECT Движение. [№автомобиля], Районы_учета. [Наименование района учета], Операции. [Наименование операции]

FROM Операции, Районы_учета, Движение

WHERE Районы_учета. [Код района учета] =Движение. [Код района учета]

AND Операции. [Код операции] =Движение. [Код операции]

AND Районы_учета. [Наименование района учета] ='Казыбек-бийский'

ANDmonth ([Дата операции]) =month (getdate ());

Запрос 5. Автомобили, каких категорий цветов поставлены на учет в текущем году.

SELECT Движение. [№автомобиля], Категории_цвета. [Наименование категории цвета]

FROM Категории_цвета, Цвета, Автомобили, Операции, Движение

WHERE Категории_цвета. [Код категории цвета] =Цвета. [Код категории цвета]

AND Цвета. [Код цвета] =Автомобили. [Код цвета]

AND Автомобили. [№автомобиля] =Движение. [№автомобиля]

AND Операции. [Наименование операции] = 'Постановка на учет'

AND year (Движение. [Дата операции]) =year (getdate ());

Отчет 1. Карточка учета автотранспортного средства

SELECT Движение. [№автомобиля],

Движение. [РНН владельца],

Операции. [Наименование операции],

Районы_учета. [Наименование района учета],

Движение. [Дата операции]

FROM Движение, Операции, Районы_учета

WHERE Районы_учета. [Код района учета] = Движение. [Код района учета]

AND Операции. [Код операции] = Движение. [Код операции] ;

Отчет 2. Отчет о движении транспортных средств на "I-ю" дату

SELECT Движение. [Дата операции],

Движение. [№автомобиля],

Движение. [РНН владельца],

Районы_учета. [Наименование района учета],

Операции. [Наименование операции]

FROM Движение, Районы_учета, Операции

WHERE Районы_учета. [Код района учета] = Движение. [Код района учета]

AND Операции. [Код операции] = Движение. [Код операции]

AND year (Движение. [Дата операции]) =year ('13 October 2007')

and month (Движение. [Дата операции]) =month ('13 October 2007')

and day (Движение. [Дата операции]) =day ('13 October 2007');

Отчет 3. Список автомобилей, владельцами которых являются физические лица

SELECT Движение. [№автомобиля],

Категории_цвета. [Наименование категории цвета]

FROM Категории_цвета, Цвета, Автомобили, Операции, Движение

WHERE Категории_цвета. [Код категории цвета] =Цвета. [Код категории цвета]

AND Цвета. [Код цвета] =Автомобили. [Код цвета]

AND Автомобили. [№автомобиля] =Движение. [№автомобиля]

AND Операции. [Наименование операции] = 'Постановка на учет'

ANDyear (Движение. [Дата операции]) =year (getdate ());

Описание процедур выполняемых в программе

Процедура 1. Необходимо выбрать автомобили, возраст которых не превышает 10 лет.

USE РЭО_ГАИ

GO

CREATE PROCEDURE Vyboravto1

AS

SELECT *

FROM Автомобили

WHERE year ([Дата выпуска]) > year ('01 January 1997')

GO

execute Vyboravto1

go

Процедура 2. Необходимо выбрать автомобили определенной марки и с определенным типом кузова.

USE РЭО_ГАИ

GO

CREATE PROCEDURE Vyboravto2 @marka_id int, @kuzov_id int

AS

SELECT *

FROM Автомобили

WHERE [Код марки авто] = @marka_id

and [Код типа кузова] = @kuzov_id

GO

USE РЭО_ГАИ

GO

EXECUTE Vyboravto2 2, 2

GO

Заключение

В первом разделе данного курсового проекта была описана постановка задачи с нововведениями и дополнениями со стороны разработчика.

Во втором и третьем разделах была описана структура разработанной базы данных и структура хранимой в ней информации. Также были подробно описаны связи между таблицами.

В четвертом разделе была описана структура программы, её классы и модули.

В пятом разделе было представлено подробное руководство по использованию программы.

Приложение

unit Unit1;

interface

uses

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

Dialogs, Menus, DB, ADODB, ExtCtrls, DBCtrls, Grids, DBGrids, ComCtrls;

type

TForm1 = class (TForm)

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

N5: TMenuItem;

N6: TMenuItem;

N7: TMenuItem;

N8: TMenuItem;

N9: TMenuItem;

N10: TMenuItem;

N11: TMenuItem;

N12: TMenuItem;

N13: TMenuItem;

N14: TMenuItem;

N15: TMenuItem;

N16: TMenuItem;

ADOTable1: TADOTable;

DataSource1: TDataSource;

DBGrid1: TDBGrid;

DBNavigator1: TDBNavigator;

StatusBar1: TStatusBar;

N17: TMenuItem;

procedure N15Click (Sender: TObject);

procedure N3Click (Sender: TObject);

procedure N4Click (Sender: TObject);

procedure N5Click (Sender: TObject);

procedure N16Click (Sender: TObject);

procedure N6Click (Sender: TObject);

procedure N7Click (Sender: TObject);

procedure N8Click (Sender: TObject);

procedure N9Click (Sender: TObject);

procedure N10Click (Sender: TObject);

procedure N11Click (Sender: TObject);

procedure N12Click (Sender: TObject);

procedure N13Click (Sender: TObject);

procedure N14Click (Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

uses Unit2, Unit3, Unit4, Unit5;

{$R *. dfm}

procedure TForm1. N15Click (Sender: TObject);

begin

Spravka. Show; // close;

end;

procedure TForm1. N3Click (Sender: TObject);

begin

Zaprosy. Show;

end;

procedure TForm1. N4Click (Sender: TObject);

begin

Otchety. Show;

end;

procedure TForm1. N5Click (Sender: TObject);

begin

Procedury. Show;

end;

procedure TForm1. N16Click (Sender: TObject);

begin

close;

end;

procedure TForm1. N6Click (Sender: TObject);

begin

ADOTable1. Active: =false;

ADOTable1. TableName: ='Районы_учета';

ADOTable1. Active: =true;

StatusBar1. SimpleText: =n6. Caption;

end;

procedure TForm1. N7Click (Sender: TObject);

begin

ADOTable1. Active: =false;

ADOTable1. TableName: ='Операции';

ADOTable1. Active: =true;

StatusBar1. SimpleText: =n7. Caption;

end;

procedure TForm1. N8Click (Sender: TObject);

begin

ADOTable1. Active: =false;

ADOTable1. TableName: ='Марки_автомобиля';

ADOTable1. Active: =true;

StatusBar1. SimpleText: =n8. Caption;

end;

procedure TForm1. N9Click (Sender: TObject);

begin

ADOTable1. Active: =false;

ADOTable1. TableName: ='Типы_кузова';

ADOTable1. Active: =true;

StatusBar1. SimpleText: =n9. Caption;

end;

procedure TForm1. N10Click (Sender: TObject);

begin

ADOTable1. Active: =false;

ADOTable1. TableName: ='Категории_цвета';

ADOTable1. Active: =true;

StatusBar1. SimpleText: =n10. Caption;

end;

procedure TForm1. N11Click (Sender: TObject);

begin

ADOTable1. Active: =false;

ADOTable1. TableName: ='Цвета';

ADOTable1. Active: =true;

StatusBar1. SimpleText: =n11. Caption;

end;

procedure TForm1. N12Click (Sender: TObject);

begin

ADOTable1. Active: =false;

ADOTable1. TableName: ='Автомобили';

ADOTable1. Active: =true;

StatusBar1. SimpleText: =n12. Caption;

end;

procedure TForm1. N13Click (Sender: TObject);

begin

ADOTable1. Active: =false;

ADOTable1. TableName: ='Движение';

ADOTable1. Active: =true;

StatusBar1. SimpleText: =n13. Caption;

end;

procedure TForm1. N14Click (Sender: TObject);

begin

ADOTable1. Active: =false;

ADOTable1. TableName: ='Владельцы';

ADOTable1. Active: =true;

StatusBar1. SimpleText: =n14. Caption;

end;

end.

unit Unit2;

interface

uses

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

Dialogs, StdCtrls, Grids, DBGrids, DB, ADODB, Mask, Buttons;

type

TZaprosy = class (TForm)

ADODataSet1: TADODataSet;

DataSource1: TDataSource;

DBGrid1: TDBGrid;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

MaskEdit1: TMaskEdit;

ComboBox1: TComboBox;

Label6: TLabel;

SpeedButton1: TSpeedButton;

SpeedButton2: TSpeedButton;

SpeedButton3: TSpeedButton;

SpeedButton4: TSpeedButton;

SpeedButton5: TSpeedButton;

Label7: TLabel;

Label8: TLabel;

Label9: TLabel;

Label10: TLabel;

Label11: TLabel;

procedure SpeedButton1Click (Sender: TObject);

procedure SpeedButton2Click (Sender: TObject);

procedure SpeedButton3Click (Sender: TObject);

procedure SpeedButton4Click (Sender: TObject);

procedure SpeedButton5Click (Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Zaprosy: TZaprosy;

implementation

{$R *. dfm}

procedure TZaprosy. SpeedButton1Click (Sender: TObject);

begin

adodataset1. Active: =false;

adodataset1.commandText: =' SELECT Автомобили. [РНН владельца], COUNT (Автомобили. [№автомобиля]) '+

' FROM Автомобили '+

// ' WHERE Владельцы. [РНН владельца] = Автомобили. [РНН владельца] ';

' GROUP BY Автомобили. [РНН владельца] ' +

' ORDER BY Автомобили. [РНН владельца] ; ';

adodataset1. Active: =true;

end;

procedure TZaprosy. SpeedButton2Click (Sender: TObject);

begin

adodataset1. Active: =false;

adodataset1.commandText: =' SELECT [№автомобиля], [№двигателя] '+

' FROM Автомобили '+

' WHERE [№двигателя] LIKE '+''''+'%'+MaskEdit1. Text+'%'+'''';

adodataset1. Active: =true;

end;

procedure TZaprosy. SpeedButton3Click (Sender: TObject);

begin

adodataset1. Active: =false;

adodataset1.commandText: =' SELECT Движение. [№автомобиля], datediff (yy, Автомобили. [Дата выпуска],getdate ()) '+

' FROM Движение, Автомобили, Операции '+

' WHERE Автомобили. [№автомобиля] =Движение. [№автомобиля] '+

' and Операции. [Код операции] =Движение. [Код операции] '+

' and Операции. [Наименование операции] like ''%постан%'''+

' and [Дата операции] < getdate (); ';

adodataset1. Active: =true;

end;

procedure TZaprosy. SpeedButton4Click (Sender: TObject);

begin

adodataset1. Active: =false;

adodataset1.commandText: =' SELECT Движение. [№автомобиля], Районы_учета. [Наименование района учета], Операции. [Наименование операции] '+

' FROM Операции, Районы_учета, Движение '+

' WHERE Районы_учета. [Код района учета] =Движение. [Код района учета] '+

' AND Операции. [Код операции] =Движение. [Код операции] '+

' AND Районы_учета. [Наименование района учета] like '+''''+'%'+combobox1. Text+'%'+'''' +

' AND month ([Дата операции]) =month (getdate ()); ';

adodataset1. Active: =true;

end;

procedure TZaprosy. SpeedButton5Click (Sender: TObject);

begin

adodataset1. Active: =false;

adodataset1.commandText: =' SELECT Движение. [№автомобиля], Категории_цвета. [Наименование категории цвета] '+

' FROM Категории_цвета, Цвета, Автомобили, Операции, Движение '+

' WHERE Категории_цвета. [Код категории цвета] =Цвета. [Код категории цвета] '+

' AND Цвета. [Код цвета] =Автомобили. [Код цвета] '+

' AND Автомобили. [№автомобиля] =Движение. [№автомобиля] '+

' AND Операции. [Наименование операции] = ''Постановка на учет'''+

' AND year (Движение. [Дата операции]) =year (getdate ()); ';

adodataset1. Active: =true;

end;

end.

unit Unit3;

interface

uses

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

Dialogs, StdCtrls, Buttons, Grids, DBGrids, DB, ADODB, Mask, Menus,

Word2000, OleServer;

type

TOtchety = class (TForm)

MainMenu1: TMainMenu;

N1: TMenuItem;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

ADODataSet2: TADODataSet;

DBGrid1: TDBGrid;

DataSource1: TDataSource;

Label4: TLabel;

ComboBox1: TComboBox;

SpeedButton1: TSpeedButton;

SpeedButton2: TSpeedButton;

SpeedButton3: TSpeedButton;

Label5: TLabel;