Языковые средства СУБД

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

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

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

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

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

в) массивы.

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

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

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

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

 

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

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

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

ЯОД

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.

ЯМД

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

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