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;