Автор работы: Пользователь скрыл имя, 11 Марта 2013 в 10:04, курсовая работа
Целью данного курсового проекта является спроектировать и реализовать на основе клиент/серверных технологий базу данных компьютерной фирмы, а также реализовать все необходимые для поиска и работы с компьютерными комплектующими запросы и отчеты.
Введение
4
1 Техническое задание
5
1.1 Анализ предметной области
5
1.2 Постановка задачи
13
2 Технический проект информационной системы
14
2.1 Функциональная модель
14
2.1.1 Контекстная диаграмма и диаграммы детализации процессов
14
2.1.2 Диаграмма дерева узлов
20
2.2 Информационная модель
21
2.2.1 Идентификация сущностей и связей. ER-диаграмма логического уровня
21
2.2.2 ER-диаграмма физического уровня. Ограничения ссылочной целостности. Определение триггеров
24
2.2.3 Определение представлений, хранимых процедур серверной компоненты
28
2.3 Верификация спроектированной логической модели
30
3 Реализация системы
38
3.1 T-SQL-определения регламентированных запросов
38
3.2 T-SQL-определения триггеров
40
3.3 T-SQL-определения хранимых процедур
44
3.4 T-SQL-определения курсоров
58
3.5 Описание клиентских приложений
59
4 Результат тестирования информационной системы
90
Заключение
91
Список использованных источников
92
GoTo Exit_Sub
End If
.SQL = "EXECUTE DeleteGoods '" & cbxBarCode & "'"
.Execute
End With
ClearFields
UpdateVendorAssort
Me.Refresh
SetStatus "Информация о товаре была удалена"
Exit_Sub:
Exit Sub
Err_Handler: 'обработка ошибок
ErrorHandler
Resume Exit_Sub
End Sub
Private Sub btnDeleteOffer_Click()
On Error GoTo Err_Handler
Dim qdfVendorAssort As QueryDef
Dim rstVendorAssort As Recordset
' Create a temporary QueryDef object
Set qdfVendorAssort = CurrentDb.CreateQueryDef("")
With qdfVendorAssort
.Connect = strCurrentODBCConnectStr
.ReturnsRecords = False
If (cbxVendor.ListIndex = -1) Then
Err.Raise 513, CurrentObjectName, "Нельзя удалить еще не сохраненные данные"
End If
If (MsgBox("Вся
информация об ассортименте
vbExclamation + vbDefaultButton2 + vbOKCancel, "Предупреждение") <> vbOK) Then
GoTo Exit_Sub
End If
.SQL = "EXECUTE DeleteVendorAssort '" & cbxBarCode & "', '" & cbxVendor & "'"
.Execute
End With
UpdateVendorAssort
Me.Refresh
SetStatus "Информация об ассортименте поставщика была удалена"
Exit_Sub:
Exit Sub
Err_Handler: 'обработка ошибок
ErrorHandler
Resume Exit_Sub
End Sub
Private Sub btnNew_Click()
ClearFields
UpdateVendorAssort
End Sub
Private Sub btnSave_Click()
On Error GoTo Err_Handler
Dim qdfGoods As QueryDef
Dim strCountWarehouse As String
Dim strCountStore As String
Dim strPrice As String
Dim strGarantee As String
If IsNull(tbxCountWarehouse) Then
strCountWarehouse = "0"
Else
If (Not IsNonNegativeNumber(tbxCountWa
Err.Raise 513, Me.Name, "Количество экземпляров на складе должно быть неотрицательным целым числом"
End If
strCountWarehouse = tbxCountWarehouse
End If
If IsNull(tbxCountStore) Then
strCountStore = "0"
Else
If (Not IsNonNegativeNumber(
Err.Raise 513, Me.Name, "Количество экземпляров в магазине должно быть неотрицательным целым числом"
End If
strCountStore = tbxCountStore
End If
If IsNull(tbxPrice) Then
strPrice = "0"
Else
If (Not IsNonNegativeNumber(tbxPrice)) Then
Err.Raise 513, Me.Name, "Цена должна быть неотрицательным целым числом"
End If
strPrice = tbxPrice
End If
If IsNull(tbxGarantee) Then
strGarantee = "0"
Else
If (Not IsNonNegativeNumber(
Err.Raise 513, Me.Name, "Срок гарантии должен быть неотрицательным целым числом"
End If
strGarantee = tbxGarantee
End If
' Create a temporary QueryDef object
Set qdfGoods = CurrentDb.CreateQueryDef("")
With qdfGoods
.Connect = strCurrentODBCConnectStr
.ReturnsRecords = False
If (cbxBarCode.ListIndex = -1) Then
.SQL = "EXECUTE InsertGoods '"
Else
.SQL = "EXECUTE UpdateGoods '"
End If
.SQL = .SQL & cbxBarCode & "', '" & cbxName & "', '" & cbxCategory & "', '" & tbxDescription & "', " & _
strCountWarehouse & ", " & strCountStore & ", " & strPrice & ", " & strGarantee & ", '" & cbxServiceCentre & "'"
.Execute
End With
ClearFields
UpdateVendorAssort
Me.Refresh
SetStatus "Изменения были успешно произведены"
Exit_Sub:
Exit Sub
Err_Handler: 'обработка ошибок
ErrorHandler
Resume Exit_Sub
End Sub
Private Sub btnSaveOffer_Click()
On Error GoTo Err_Handler
Dim qdfVendorAssort As QueryDef
Dim strOEMPrice As String
Dim strOEMCount As String
If IsNull(cbxBarCode) Then
Err.Raise 513, Me.Name, "Для добавления ассортимента поставщика сначала выберите сохраненный в базе товар"
End If
If IsNull(cbxVendor) Then
Err.Raise 513, Me.Name, "Для добавления ассортимента поставщика сначала выберите поставщика"
End If
If IsNull(tbxOEMPrice) Or tbxOEMPrice = "" Then
strOEMPrice = "0"
Else
If (Not IsNonNegativeNumber(
Err.Raise 513, Me.Name, "Цена должна быть неотрицательным целым числом"
End If
strOEMPrice = tbxOEMPrice
End If
If IsNull(tbxOEMCount) Or tbxOEMCount = "" Then
strOEMCount = "0"
Else
If (Not IsNonNegativeNumber(
Err.Raise 513, Me.Name, "Количество экземпляров, предлагаемых поставщиком должно быть неотрицательным целым числом"
End If
strOEMCount = tbxOEMCount
End If
' Create a temporary QueryDef object
Set qdfVendorAssort = CurrentDb.CreateQueryDef("")
With qdfVendorAssort
.Connect = strCurrentODBCConnectStr
.ReturnsRecords = False
If (GetVendorAssortIndex(
.SQL = "EXECUTE InsertVendorAssort '"
Else
.SQL = "EXECUTE UpdateVendorAssort '"
End If
.SQL = .SQL & cbxBarCode & "', '" & cbxVendor & "', " & _
strOEMPrice & ", " & strOEMCount
.Execute
End With
UpdateVendorAssort
Me.Refresh
SetStatus "Изменения были успешно произведены"
Exit_Sub:
Exit Sub
Err_Handler: 'обработка ошибок
ErrorHandler
Resume Exit_Sub
End Sub
Private Sub cbxBarCode_AfterUpdate()
On Error GoTo Err_Handler
If (IsNull(cbxBarCode)) Then
Exit Sub
End If
If (cbxBarCode.ListIndex = -1) Then
Exit Sub
End If
Dim qdfGoods As QueryDef
Dim rstGoods As Recordset
' Create a temporary QueryDef object to retrieve
' data from a Microsoft SQL Server database.
Set qdfGoods = CurrentDb.CreateQueryDef("")
With qdfGoods
.Connect = strCurrentODBCConnectStr
.ReturnsRecords = True
.SQL = "EXECUTE GetGoodsByCode '" & cbxBarCode & "'"
Set rstGoods = .OpenRecordset(dbOpenSnapshot)
End With
With rstGoods
cbxName = !Название_товара
cbxCategory = !Категория
tbxDescription = !Описание
tbxCountWarehouse = !Количество_склад
tbxCountStore = !Количество_магазин
tbxPrice = !Цена
tbxGarantee = !Срок_гарантии
If (!Код_сервисного_центра <> 0) Then
cbxServiceCentre = !Название_сервисного_центра
Else
cbxServiceCentre = ""
End If
.Close
End With
UpdateVendorAssort
cbxName.SetFocus
SetStatus "Поля успешно заполнены по коду товара"
Exit_Sub:
Exit Sub
Err_Handler: 'обработка ошибок
ErrorHandler
Resume Exit_Sub
End Sub
Private Sub cbxName_AfterUpdate()
On Error GoTo Err_Handler
If (IsNull(cbxName)) Then
Exit Sub
End If
If (cbxName.ListIndex = -1) Then
Exit Sub
End If
Dim qdfGoods As QueryDef
Dim rstGoods As Recordset
' Create a temporary QueryDef object to retrieve
' data from a Microsoft SQL Server database.
Set qdfGoods = CurrentDb.CreateQueryDef("")
With qdfGoods
.Connect = strCurrentODBCConnectStr
.ReturnsRecords = True
.SQL = "EXECUTE GetGoodsByName '" & cbxName & "'"
Set rstGoods = .OpenRecordset(dbOpenSnapshot)
End With
With rstGoods
cbxBarCode = !Штрихкод_товара
cbxCategory = !Категория
tbxDescription = !Описание
tbxCountWarehouse = !Количество_склад
tbxCountStore = !Количество_магазин
tbxPrice = !Цена
tbxGarantee = !Срок_гарантии
If (!Код_сервисного_центра <> 0) Then
cbxServiceCentre = !Название_сервисного_центра
Else
cbxServiceCentre = ""
End If
.Close
End With
UpdateVendorAssort
cbxName.SetFocus
SetStatus "Поля успешно заполнены по коду товара"
Exit_Sub:
Exit Sub
Err_Handler: 'обработка ошибок
ErrorHandler
Resume Exit_Sub
End Sub
Private Sub cbxVendor_AfterUpdate()
On Error GoTo Err_Handler
If (IsNull(cbxVendor)) Then
Exit Sub
End If
If (cbxVendor.ListIndex = -1) Then
Exit Sub
End If
If IsNull(lbxVendorAssort.
Exit Sub
End If
Dim indexVendorAssort As Long
indexVendorAssort = GetVendorAssortIndex(
If (indexVendorAssort < lbxVendorAssort.ListCount) Then
With lbxVendorAssort
tbxOEMPrice = .Column(1, indexVendorAssort)
tbxOEMCount = .Column(2, indexVendorAssort)
End With
Else
tbxOEMPrice = ""
tbxOEMCount = ""
Exit Sub
End If
tbxOEMPrice.SetFocus
SetStatus "Поля успешно заполнены по названию поставщика"
Exit_Sub:
Exit Sub
Err_Handler: 'обработка ошибок
ErrorHandler
Resume Exit_Sub
End Sub
Private Sub Form_Open(Cancel As Integer)
On Error GoTo Err_Handler
InitRowSources
ClearFields
InitColumnsWidth
UpdateVendorAssort
SetStatus "Инициализация формы завершена"
Exit_Sub:
Exit Sub
Err_Handler: 'обработка ошибок
ErrorHandler
Resume Exit_Sub
End Sub
Public Sub ClearFields()
cbxBarCode = Null
cbxName = Null
cbxCategory = Null
tbxDescription = Null
tbxCountWarehouse = Null
tbxCountStore = Null
tbxPrice = Null
tbxGarantee = Null
cbxServiceCentre = Null
cbxVendor = Null
tbxOEMCount = Null
tbxOEMPrice = Null
cbxBarCode.SetFocus
End Sub
Public Sub InitRowSources()
CurrentDb.QueryDefs("
cbxBarCode.RowSourceType = "Table/Query"
cbxBarCode.RowSource = "qGetAllGoodsCodes"
CurrentDb.QueryDefs("
cbxName.RowSourceType = "Table/Query"
cbxName.RowSource = "qGetAllGoodsNames"
CurrentDb.QueryDefs("
cbxCategory.RowSourceType = "Table/Query"
cbxCategory.RowSource = "qGetAllGoodsCategories"
CurrentDb.QueryDefs("
cbxServiceCentre.RowSourceType = "Table/Query"
cbxServiceCentre.RowSource = "qGetAllServiceNames"
CurrentDb.QueryDefs("
Информация о работе Разработка информационной системы "Компьютерная фирма"