Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Модели и функции реляционных СУБД.doc
Скачиваний:
1
Добавлен:
13.11.2019
Размер:
173.57 Кб
Скачать

3.2 Языковые средства субд

Предназначены для общения пользователя с СУБД.

Языковые средства:

  1. ЯОД - язык описания данных:

а) объекты приложения (ТБД с переменными базы);

б) переменные памяти;

в) массивы.

  1. ЯМД - язык манипулирования данными.

  1. Язык запросов SQL (Structure Query Language).

4. Генераторы приложений

Внутренними командами и функциями базового языка СУБД являются лишь команды и функции ЯОД и ЯМД. Язык SQL как общепризнанный IBM-стандарт встроен в СУБД (SQL-операторы SELECT, INSERT INTO, DELETE и др.). А генераторы приложений разнообразны и предназначены, чтобы облегчить программисту разработку экранных форм ввода данных, отчетных сводок и меню.

Особенности указания комментариев в базовом языке СУБД:

* - символ неисполнимой команды для всей строки;

&& - символы не исполнения только комментария к команде строки.

3.2.1 ЯОД

1) Переменные базы (ПБ) создаются в составе ТБД, либо как свободные таблицы. Они всегда структурированы в файлы таблицы и не существуют сами по себе.

Каждая ПБ – это поле со своим именем в файле. Структура файла вместе с ПБ автоматически сохраняется на магнитном диске.

Существует специальное соглашение об именах полей таблицы: тип поля - это первая буква в названии поля (cNomp - character; nStat - numeric).

2)Переменные памяти (ПП) – переменные, используемые в оперативной памяти (ОП).

ПП создаются 2-мя командами:

  • Store <Выражение> to ПП

Выражение, как уже указывалось, может быть символьным, численным, логическим, календарного типа (тип даты/времени).

Примеры:

Store|_| |_|to M && в ПП с именем М записать два пробела.

Store 0000 to Kol && - в пп именем Kol записать 4 нуля.

  • <ПП> = <Выражение> (символ = - это присвоение значения)

Примеры:

M=”|_| |_| или D=”Дом”

Kol=0000 или В=5

Dat = DATE( ) или С=DATE( )– функция текущей даты.

S = .T. && логический тип присваивается ПП S (S = True).

SS = .F. && логический тип присваивается ПП SS (SS = False).

По умолчанию все ПП являются числовыми. Для сохранения ПП на магнитном диске используется команда:

Save to <имя файла>│<Memo-поле>.

Эта команда сохраняет ПП в файле или в Memo-поле (поле приложения).

По области видимости (т.е. по нахождению и жизненному циклу переменных в программах) различают 3 вида ПП:

1.public/global;

2.private;

3.local

Схема вхождения ПП в зависимости от их принадлежности программам показана на рис.3.1

Рис. 3.1. Схема вхождения ПП в зависимости от их принадлежности программам

Public - видимы («готовы к употреблению») в любой программе с расширением *.prg во время текущего сеанса работы пользователя с Visual FoxPro. Освобождаются только после окончания сеанса связи, либо если она была освобождена самим программистом в подпрограмме уровнем ниже.

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

Local – видимы лишь в текущей процедуре и, в отличие от Private, не видимы в процедурах и функциях после завершения данной процедуры.

В соглашении об именах ПП/массивов для указания их области видимости используется двухбуквенный код: старшая буква - область видимости ПП/массива, младшая – тип ПП/массива. Сочетание различных значений кода области видимости и типа указывается перед конкретным именем. Соглашение об именах ПП представлено в табл. 3.1

Таблица 3.1 Пример некоторых значений двухбуквенных кодов

областей видимости и типов ПП/массивов

Область видимости

Тип ПП (массива)

l- local

c- character

p- private

n- numeric

g- global

y- currency

t- parameter

d- date

t- date/time

a- array

l- logical

3)Массивы (array) – могут быть одномерными и двумерными числовыми.

Создаются командой: Dimension ArrayName1 [,ArrayName2]…

Аналог команды Dimension – команда Declare.

Примеры:

Описание массива: Dimension gaMyArray(1,10), gaMyMassiv(20)

Описание ПП: рnKol=0000 или lcD="Дом"

Массивы можно преобразовывать командой Gather в записи таблиц БД. Записи ТБД можно преобразовывать в массив командой Scatter.

3.2.2 ЯМД

- включает все остальные команды и функции базового языка СУБД VFP (кроме команды и функций языка SQL);

- является процедурным языком, т.е. устанавливает какие действия над какими объектами (таблицами, полями, массивами) надо совершить для получения результата.