Студопедия

КАТЕГОРИИ:

АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника


Блокировки схемы данных




Последний тип блокировок, связан с командами DDL и схемой данных (Schema). Блокировка схемы (Schema lock) предназначена для блокирования метаданных объектов базы данных. Типичной командой изменения таких данных может служить команда ALTER. Эта команда приводит к изменению системных таблиц метаданных, таких, как syscolumns, sysobjects, sysforeignkeys и других. Чтобы запретить другим транзакциям обращаться к модифицируемым ресурсам и их метаданным, введены блокировки схемы. Блокировки схемы бывают всего двух типов:

Блокировка стабильности схемы (Schema Stability Lock), обозначается Sch-S. Данный тип блокировки предназначен для гарантии неизменности метаданных, но не самих данных. Т.е. блокировка стабильности схемы – единственная из всех типов блокировок, совместимых с монопольной блокировкой. В основном она устанавливается при компиляции тела запроса или хранимой процедуры, на это время запрещается вносить изменения в схему данных, однако разрешается устанавливать любой тип блокировок на сами данные, с которыми будет работать компилируемый запрос.

Блокировка изменения схемы (Schema Modification Lock), обозначается Sch-M. Данный тип блокировки не совместим ни с каким другим типом, ни с самим собой. Устанавливается после внесения изменений в схему данных и снимается после завершения транзакции.

 

13. Блочно – модульный принцип организации программ в языке Турбо Паскаль. Локальные и глобальные переменные. Примеры.

 

Понятие глобальных и локальных переменных введено в языке Паскаль из-за наличия в нем понятия блочной структуры. Любая программа, процедура и функция представляют собой блок со своей областью описаний и могут содержать внутри этого блока описания других процедур и функций, а также обращения к ним. Программа и совокупность описанных в ней процедур и функций образует блочную структуру. Блок, содержащий в своем разделе описаний другой блок (процедуру и функцию), называется внешним по отношению к нему. Блок, содержащийся в разделе описаний некоторого блока, называется внутренним или подблоком. Объекты, описанные внутри какого-либо подблока, являются по отношению к нему локальными и недоступны внешним блокам, т.е. на них можно ссылаться только внутри блока, в котором они описаны.

 

Program shapka_procedur; {Блочная программа}

Ch:char; {Глобальные параметры, исп. в процедуре}

Len:lnteger; {Глобальные параметры, исп. в процедуре}

{————————————————————————————————————}

Procedure Lin; {Процедура вычерчивания линий}

Var l:lnteger; {описание локальной переменной}

Begin

FOR l:=1 TO Len DO

write(Ch);

writeln;

End; {конец процедуры}

{————————————————————————————————————}

BEGIN {начало главной программы}

writeIn('Таблица 1');

writeln;

Len:=30; {Задание длины вычерчиваемой линии}

Ch:=’=’; {Задание символа вычерчивания линии}

Lin; {Вызов процедуры вычерчивания линии}

{..вывод текста шапки}

Lin; {Вызов процедуры вычерчивания линии}

{..вывод номеров граф}

Ch:=’_’; {Задание символа вычерчивания линии}

Lin; {Вызов процедуры вычерчивания линии}

END. {Конец главной программы}

 

Для того чтобы процедура могла выполнить не одну строго определенную последовательность действий, а целое семейство аналогичных действий, но с разными параметрами, необходимо дополнить процедуру этими параметрами. В нашем случае целесообразно предусмотреть два параметра: параметр, определяющий длину строки, и параметр для выбора символа, которым предполагается прочертить строку.

Тогда программа, включающая в себя процедуру, будет иметь вид, представленный ниже.

Пример

Program shapka3_procedura; {Заголовок основной программы}

{ Описание переменных основной программы }

{ ....... }

Procedure Lin(Len:integer;Ch:Char); {Процедура линии}

{Формальные параметры:длина - Len,символ - Ch}

Var I:lnteger;

Begin {Начало текста процедуры}

FOR l:=1 ТО Len DO write(Ch);

writeln;

End; {Конец процедуры}

BEGIN {начало главной программы}

writeIn ('Таблица 2.1');

Lin(40,’=’); {Вызов процедуры вычерчивания линии}

{ ....... }

{ ..вывод текста шапки }

{ ....... }

Lin(40,’=’); {..вывод номеров граф}

Lin(40,’-’); {Обращение к подпрограмме вычер. линий}

{Продолжение текста программы}

END. {Конец главной программы}

 

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

Lin(40,’=’),

где 40 - длина линии, ‘=’ - используемый символ.

Значения, стоящие в круглых скобках, называются аргументами, т.е. теми значениями фактических параметров, которые подставляются при вызове процедуры. Параметру LEN будет присвоено значение 40, параметру Ch значение ‘=’ типа Char. В общем случае аргумент и параметр должны относиться к совместимым типам, т.е. значение аргумента должно быть таким, чтобы его можно было назначить параметру.

 

 


Поделиться:

Дата добавления: 2014-12-23; просмотров: 261; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.006 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты