Языковые средства СУБД
Предназначены для общения пользователя с СУБД.
Языковые средства:
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);
- является процедурным языком, т.е. устанавливает какие действия над какими объектами (таблицами, полями, массивами) надо совершить для получения результата.