
35.Хранимые процедуры
Ответ на практический вопрос
CREATE PROCEDURE Perexod_Kurs ()
AS UPDATE Student SET Kurs=Kurs+1
Теорет вопрос
Хранимые процедуры-это подпрограммы,которые выполняются на сервере
Создание хранимых процедур
Хранимую процедуру можно создавать в следующем порядке: сначала написать операторы Transact SQL, которые должны быть включены в хранимую процедуру. И проверить их работу, а затем, если нужный результат получен, можно создать хранимую процедуру.
создания хранимой процедуры используется оператор SQL CREATE PROCEDURE.
Синтаксис:
CREATE PROCEDURE <имя процедуры> (@<имя перем1> <тип данных>, @<имя перем2> <тип данных>…)
[@параметр тип данных]=значение по умолчанию] [OUТPUT]
[WITH
{RECOMPILE
|ENCRYPTION
|RECOMPILE,ENCRYPTION}]
[FOR REPLICATION]
AS <тело процедуры>
Ключевое слово RECOMPILE определяет режим компиляции. Если RECOMPILE задано, то процедура будет перекомпилироваться всякий раз, когда она будет передаваться на выполнение .Ключевое слово ENCRYPTION определяет режим, при котором исходный текст хранимой процедуры не сохраняется в БД. Кроме имени, все остальные параметры являются необязательными.
Каждая хранимая процедура компилируется при первом выполнении. Описание процедуры совместно с планом ее работы хранится в системных таблицах БД.
Выполнение хранимой процедуры
Выполнение процедуры осуществляется с помощью команды
EXE[UTE] имя процедуры [@параметр = значение]
Значение параметра задается путем передачи значения или ссылки на позицию.
Передача параметра со ссылками на имена осуществляется следующим образом: @параметр = значение. При этом значения параметров можно указывать в любом порядке, а параметры, имеющие значение по умолчанию, опускать.
Передача значений без ссылок на имена параметров называется передачей значений по позиции. Если указываются только значения, их следуют перечислять в порядке определения в операторе CREATE PROC. При этом можно опускать параметры, имеющие значения по умолчанию, но последовательность параметров нарушать нельзя.
37.Практика:
CREATE TRIGER [индикатор удаления]
ON Должность
AFTER DELETE
AS
BEGIN
SET NOSSUNT ON
PRINT’Запись удалена’
END
Go
Триггеры являются одной из разновидностей хранимых процедур. Их исполнение происходит при выполнении для таблицы какого-либо оператора языка манипулирования данными (DML). Триггеры используются для проверки целостности данных, а также для отката транзакций.
Триггер – это откомпилированная SQL-процедура, исполнение которой обусловлено наступлением определенных событий внутри реляционной базы данных. Применение триггеров большей частью весьма удобно для пользователей базы данных. И все же их использование часто связано с дополнительными затратами ресурсов на операции ввода/вывода. В том случае, когда тех же результатов (с гораздо меньшими непроизводительными затратами ресурсов) можно добиться с помощью хранимых процедур или прикладных программ, применение триггеров нецелесообразно.
Триггеры – особый инструмент SQL-сервера, используемый для поддержания целостности данных в базе данных.
Существует три типа триггеров:
-INSERT TRIGGER – запускаются при попытке вставки данных с помощью команды INSERT.
-UPDATE TRIGGER – запускаются при попытке изменения данных с помощью команды UPDATE.
-DELETE TRIGGER – запускаются при попытке удаления данных с помощью команды DELETE.
Основной формат команды CREATE TRIGGER показан ниже:
<Определение_триггера>::=
CREATE TRIGGER имя_триггера
BEFORE | AFTER <триггерное_событие>
ON <имя_таблицы>
[REFERENCING
<список_старых_или_новых_псевдонимов>]
[FOR EACH { ROW | STATEMENT}]
[WHEN(условие_триггера)]
<тело_триггера>
38. Информационная система представляет собой систему, реализующую автоматизированный сбор, обработку и манипулирование данными, включающую технические средства обработки данных, программное обеспечение и обслуживающий персонал.
Этапы разработки ИС по клиент-серверной технологии:
1) Создаётся проект;
2) В проекте создаются объекты связи, которые подключаются к файлу данных;
3) Создаются формы;
4) Создаются отчёты.
Практика Поместите справа от надписи «Код специальности», неподключённый ни к каким полям выпадающий список(ComboBox).Вкл опцию «Use data bound
items».Задать параметры след. образом: • «DataSource» задайте как «Other Data Sources\Project Data Sources\StudentsDataSet\Специальности»; • «DataMember» задайте как «Наименование специальности»; • «Value Member» задайте как «Код специальности»;
• «Selected Value» задайте как «СтудентыBindingSource\Код специальности».
39. Технологии, используемые в объектах связи технология ADO Её суть заключается в следующем: подключение к конкретной таблице или запросу, осуществляется через отдельный объект связи, т.е. все настройки и средства для работы с данными хранятся внутри конкретного объекта связи и были заложены туда при его проектировании.
технология RDC; технология ADO.Net. является смесью технологий ADO и RDC. Объекты связи работающие по этой технологии работают аналогично объектам работающим по технологии ADO, однако, объекты связи входят в состав пакета Microsoft Net Framework, и автоматически обновляются вместе с этим пакетом. Объекты связи - это объекты проекта, осуществляющие обмен информацией между
интерфейсом БД и файлом данных.
Объекты связи всегда находятся на клиентской машине. Они осуществляют доступ
к файлам данных, передавая информацию в интерфейс БД, и содержат внутри себя
запросы, выполнения на стороне клиента. Объекты, предназначенные для создания подключения к файлам данных. DataSet (Набор данных), BindingSource (Источник связи), TableAdapter (Адаптер таблиц), TableAdapterManager (Менеджер адаптера таблиц), BindingNavigator (Панель управления таблицей). Кнопки:
Первая - DolchnostiBindingSource.MoveFirst()
Предыдущая - DolchnostiBindingSource.MovePrevious()
Следующая - DolchnostiBindingSource.MoveNext()
Последняя - DolchnostiBindingSource.MoveLast()
Добавить - DolchnostiBindingSource.AddNew()
Удалить - DolchnostiBindingSource.RemoveCurrent()
Сохранить - Me.Validate()
Me.DolchnostiBindingSource.EndEdit() Me.TableAdapterManager.UpdateAll(Me.BolnicaDataSet)
9. Реляцион модель(вопрос №8)
Фундаментальные свойства отношений
-Отсутствие кортежей-дубликатов
-Отсутствие упорядоченности кортежей
-Отсутствие упорядоченности атрибутов
-Атомарность значений атрибутов
-Целостность сущности и ссылок. Первое требование называется требованием целостности сущностей. Объекту или сущности реального мира в реляционных БД соответствуют кортежи отношений. Конкретно требование состоит в том, что любой кортеж любого отношения отличим от любого другого кортежа этого отношения, т.е. другими словами, любое отношение должно обладать первичным ключом. Второе требование называется требованием целостности по ссылкам. Требование целостности по ссылкам, или требование внешнего ключа состоит в том, что для каждого значения внешнего ключа, появляющегося в ссылающемся отношении, в отношении, на которое ведет ссылка, должен найтись кортеж с таким же значением первичного ключа, либо значение внешнего ключа должно быть неопределенным (т.е. ни на что не указывать).
существуют три подхода, каждый из которых поддерживает целостность по ссылкам. Первый подход заключается в том, что запрещается производить удаление кортежа, на который существуют ссылки (т.е. сначала нужно либо удалить ссылающиеся кортежи, либо соответствующим образом изменить значения их внешнего ключа). При втором подходе при удалении кортежа, на который имеются ссылки, во всех ссылающихся кортежах значение внешнего ключа автоматически становится неопределенным. Наконец, третий подход (каскадное удаление) состоит в том, что при удалении кортежа из отношения, на которое ведет ссылка, из ссылающегося отношения автоматически удаляются все ссылающиеся кортежи.
40. Информационная система предст собой систему, реализующую автоматизированный сбор, обработку и манипулирование данными, включающую технические средства обработки данных, по и обслуживающий персонал.
Все формы в клиентском приложении делятся на три группы:Формы для работы с данными - формы, содержащие как объекты управления, так и объекты просмотра данных. Такие формы предназначены для отображения, изменения, удаления и анализа данных;Кнопочные формы - формы, содержащие только объекты управления, предназначаются для открытия всех других форм.Замечание: Кнопочная форма, которая появляется первой после запуска программы, называется, главной кнопочной формой.Информационные и служебные формы - формы, содержащие только элементы управления, предназначены для отображения служебной информации (справки), несвязанной с таблицами, запросами и фильтрами, либо для выполнения служебных операций не связанных с данными (Например: форма с калькулятором)Замечание: Существует два вида дизайна форм:Ленточные формы - формы, выводящие информацию по одной записи;Табличные формы - формы выводящие информацию в виде таблицы.Замечание: Объекты связи используются только в клиентском интерфейсе. В web-интерфейса функции объекта связи выполняет сервер. Код для поиска: Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click For i = 0 To PazientiDataGridView.ColumnCount - 1 For j = 0 To PazientiDataGridView.RowCount - 1 PazientiDataGridView.Item(i, j).Style.BackColor = Color.White PazientiDataGridView.Item(i, j).Style.BackColor = Color.Black
Next j Next i For i = 0 To PazientiDataGridView.ColumnCount - 1 For j = 0 To PazientiDataGridView.RowCount - 1 If InStr(PazientiDataGridView.Item(i, j).Value, TextBox1.Text) Then PazientiDataGridView.Item(i, j).Style.BackColor = Color.AliceBlue PazientiDataGridView.Item(i, j).Style.ForeColor = Color.Blue End If Next j
Next i End Sub Код для сортировки: Dim Col As System.Windows.Forms.DataGridViewColumn Select Case ListBox1.SelectedIndex Case 0 Col = DataGridViewTextBoxColumn1 Case 1 Col = DataGridViewTextBoxColumn2 Case 2 Col = DataGridViewTextBoxColumn3 Case 3 Col = DataGridViewTextBoxColumn6 End Select If RadioButton1.Checked Then PazientiDataGridView.Sort(Col, System.ComponentModel.ListSortDirection.Ascending) Else PazientiDataGridView.Sort(Col, System.ComponentModel.ListSortDirection.Descending) End If Код для фильтра: Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click PazientiBindingSource.Filter = "ID_sotrudnika='" & ComboBox3.Text & "'" End Sub
Показать все:Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click PazientiBindingSource.Filter = ""
End Sub