Объектная модель ADO состоит из следующих объектов высокого уровня и семейств объектов:
Connection (представляет подключение к удалённому источнику данных)
Recordset (представляет набор строк, полученный от источника данных)
Command (используется для выполнения команд и SQL-запросов с параметрами)
Record (может представлять одну запись объекта Recordset или же иерархическую структуру, состоящую из текстовых данных)
Stream (используется для чтения и записи потоковых данных, например, документов XML или двоичных объектов)
Errors (представляет ошибки)
Fields (представляет столбцы таблицы базы данных)
Parameters (представляет набор параметров SQL-инструкции)
Properties (представляет набор свойств объекта)
1.2.4. Выбор технических средств
Основанная база хранится на сервере, клиентские приложения хранятся на ПК в сети, доступ к базе осуществляется посредством локальной сети:
Рисунок 1.1 Архитектура локальной сети для клиент-серверных приложений
Схема 2.1 Дерево модулей и форм.
Таблица 2.1 TB_DOGOVOR
Имя поля | Пояснение | Тип данных | Ключ поля |
ID_DOGOVOR | Код договора | Int | Первичный |
ID_KLIENT | Код клиента | Int | Внешний |
ID_MASHIN | Код конфигурации | Int | Внешний |
Date_zakl | Дата заключения | DateTime | |
Date_okonch | Дата окончания | DateTime | |
Stoimost | Общая стоимостьтоимость | DateTime |
Таблица 2.2 TB_MASHIN
Имя поля | Пояснение | Тип данных | Ключ поля |
ID_MASHIN | Код конфигурации | Int | Первичный |
ID_PROC | Код процессора | Int | Внешний |
ID_HDD | Код конфигурации | Int | Внешний |
ID_MEM | Код оперативной памяти | Int | Внешний |
ID_SPEED | Код скорости подключения | Int | Внешний |
NAIM | Название конфигурации | nchar | |
CENA | Цена аренды в месяц | Real |
Таблица 2.3 TB_HDD
Имя поля | Пояснение | Тип данных | Ключ поля |
ID_HDD | Код жесткого диска | Int | Первичный |
NAIM | Наименование | nchar | |
HARACT | Характеристики | nchar |
Таблица 2.4 TB_KLIENTS
Имя поля | Пояснение | Тип данных | Ключ поля |
ID_KLIENT | Код клиента | Int | Первичный |
NAIM | ФИО | nchar | |
HARACT | Контактные данные | nchar |
Таблица 2.5 TB_MEM
Имя поля | Пояснение | Тип данных | Ключ поля |
ID_MEM | Код памяти | Int | Первичный |
NAIM | Наименование | nchar | |
HARACT | Характеристики | nchar |
Таблица 2.6 TB_PROC
Имя поля | Пояснение | Тип данных | Ключ поля |
ID_PROC | Код процессора | Int | Первичный |
NAIM | Наименование | nchar | |
HARACT | Характеристики | nchar |
Таблица 2.4 TB_SPEED
Имя поля | Пояснение | Тип данных | Ключ поля |
ID_SPEED | Код скорости | Int | Первичный |
NAIM | Наименование | nchar | |
HARACT | Характеристики | nchar |
Схема 2.2 Структура таблиц
Рисунок 2.2 Главная форма
Рисунок 2.3 Форма запросов, таблиц и представлений.
Рисунок 2.4 Форма справочников
Рисунок 2.5 Форма добавления элементов в таблицы.
Рисунок 2.5 Data Module
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[TB_SPEED]') AND type in (N'U'))
BEGIN
CREATE TABLE [dbo].[TB_SPEED](
[ID_SPEED] [int] IDENTITY(1,1) NOT NULL,
[NAIM] [nchar](10) NULL,
[HARACT] [nchar](10) NULL,
CONSTRAINT [PK_TB_SPEED] PRIMARY KEY CLUSTERED
(
[ID_SPEED] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[TB_KLIENTS]') AND type in (N'U'))
BEGIN
CREATE TABLE [dbo].[TB_KLIENTS](
[ID_KLIENT] [int] IDENTITY(1,1) NOT NULL,
[NAIM] [nchar](25) NULL,
[HARACT] [nchar](50) NULL,
CONSTRAINT [PK_TB_KLIENTS] PRIMARY KEY CLUSTERED
(
[ID_KLIENT] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[TB_PROC]') AND type in (N'U'))
BEGIN
CREATE TABLE [dbo].[TB_PROC](
[ID_PROC] [int] IDENTITY(1,1) NOT NULL,
[NAIM] [nchar](10) NULL,
[HARACT] [nchar](10) NULL,
CONSTRAINT [PK_TB_PROC] PRIMARY KEY CLUSTERED
(
[ID_PROC] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[TB_MEM]') AND type in (N'U'))
BEGIN
CREATE TABLE [dbo].[TB_MEM](
[ID_MEM] [int] IDENTITY(1,1) NOT NULL,
[NAIM] [nchar](10) NULL,
[HARACT] [nchar](10) NULL,
CONSTRAINT [PK_TB_MEM] PRIMARY KEY CLUSTERED
(
[ID_MEM] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[TB_HDD]') AND type in (N'U'))
BEGIN
CREATE TABLE [dbo].[TB_HDD](
[ID_HDD] [int] IDENTITY(1,1) NOT NULL,
[NAIM] [nchar](10) NULL,
[HARACT] [nchar](10) NULL,
CONSTRAINT [PK_TB_HDD] PRIMARY KEY CLUSTERED
(
[ID_HDD] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[TB_MASHIN]') AND type in (N'U'))
BEGIN
CREATE TABLE [dbo].[TB_MASHIN](
[ID_MASHIN] [int] IDENTITY(1,1) NOT NULL,
[ID_PROC] [int] NULL,
[ID_HDD] [int] NULL,
[ID_MEM] [int] NULL,
[ID_SPEED] [int] NULL,
[NAIM] [nchar](10) NULL,
[CENA] [real] NULL,
CONSTRAINT [PK_TB_MASHIN] PRIMARY KEY CLUSTERED
(
[ID_MASHIN] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[TB_DOGOVOR]') AND type in (N'U'))
BEGIN
CREATE TABLE [dbo].[TB_DOGOVOR](
[ID_DOGOVOR] [int] IDENTITY(1,1) NOT NULL,
[ID_KLIENT] [int] NULL,
[ID_MASHIN] [int] NULL,
[Date_zakl] [datetime] NULL,
[Date_okonch] [datetime] NULL,
[Stoimost] [real] NULL,
CONSTRAINT [PK_TB_DOGOVOR] PRIMARY KEY CLUSTERED
(
[ID_DOGOVOR] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[PR_MASHIN]'))
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[PR_MASHIN]
AS
SELECT dbo.TB_MASHIN.NAIM AS NAIM_MASH, dbo.TB_MEM.NAIM AS NAIM_MEM, dbo.TB_SPEED.NAIM AS NAIM_SPEED, dbo.TB_PROC.NAIM AS NAIM_PROC,
dbo.TB_HDD.NAIM AS NAIM_HDD, dbo.TB_MASHIN.CENA
FROM dbo.TB_MASHIN INNER JOIN
dbo.TB_MEM ON dbo.TB_MASHIN.ID_MEM = dbo.TB_MEM.ID_MEM INNER JOIN
dbo.TB_PROC ON dbo.TB_MASHIN.ID_PROC = dbo.TB_PROC.ID_PROC INNER JOIN
dbo.TB_SPEED ON dbo.TB_MASHIN.ID_SPEED = dbo.TB_SPEED.ID_SPEED INNER JOIN
dbo.TB_HDD ON dbo.TB_MASHIN.ID_HDD = dbo.TB_HDD.ID_HDD
'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_DiagramPane1', @value=N'[0E232FF0-B466-11cf-A24F-00AA00A3EFFF, 1.00]
Begin DesignProperties =
Begin PaneConfigurations =
Begin PaneConfiguration = 0
NumPanes = 4
Configuration = "(H (1[40] 4[20] 2[20] 3))"
End
Begin PaneConfiguration = 1
NumPanes = 3
Configuration = "(H (1 [50] 4 [25] 3))"
End
Begin PaneConfiguration = 2
NumPanes = 3
Configuration = "(H (1 [50] 2 [25] 3))"
End
Begin PaneConfiguration = 3
NumPanes = 3
Configuration = "(H (4 [30] 2 [40] 3))"
End
Begin PaneConfiguration = 4
NumPanes = 2
Configuration = "(H (1 [56] 3))"
End
Begin PaneConfiguration = 5
NumPanes = 2
Configuration = "(H (2 [66] 3))"
End
Begin PaneConfiguration = 6
NumPanes = 2
Configuration = "(H (4 [50] 3))"
End
Begin PaneConfiguration = 7
NumPanes = 1
Configuration = "(V (3))"
End
Begin PaneConfiguration = 8
NumPanes = 3
Configuration = "(H (1[56] 4[18] 2))"
End
Begin PaneConfiguration = 9
NumPanes = 2
Configuration = "(H (1 [75] 4))"
End
Begin PaneConfiguration = 10
NumPanes = 2
Configuration = "(H (1[66] 2))"
End
Begin PaneConfiguration = 11
NumPanes = 2
Configuration = "(H (4 [60] 2))"
End
Begin PaneConfiguration = 12
NumPanes = 1
Configuration = "(H (1))"
End
Begin PaneConfiguration = 13
NumPanes = 1
Configuration = "(V (4))"
End
Begin PaneConfiguration = 14
NumPanes = 1
Configuration = "(V (2))"
End
ActivePaneConfig = 0
End
Begin DiagramPane =
Begin Origin =
Top = 0
Left = 0
End
Begin Tables =
Begin Table = "TB_MEM"
Begin Extent =
Top = 6
Left = 245
Bottom = 108
Right = 414
End
DisplayFlags = 280
TopColumn = 0
End
Begin Table = "TB_PROC"
Begin Extent =
Top = 6
Left = 452
Bottom = 108
Right = 621
End
DisplayFlags = 280
TopColumn = 0
End
Begin Table = "TB_SPEED"
Begin Extent =
Top = 108
Left = 245
Bottom = 210
Right = 414
End
DisplayFlags = 280
TopColumn = 0
End
Begin Table = "TB_HDD"
Begin Extent =
Top = 108
Left = 452
Bottom = 210
Right = 621
End
DisplayFlags = 280
TopColumn = 0
End
Begin Table = "TB_MASHIN"
Begin Extent =
Top = 6