Тема 4. Стандартные функции в СУБД
В xBase существуют специальные команды – функции, к которым относятся команды подсчета записей в активной таблице данных, вычисления среднего значения и суммы по числовым полям активной таблицы данных. Подсчитанные данные можно занести в переменные – временные переменные памяти (ВПП). Максимально допустимое число ВПП в различных СУБД различно. Имя переменной может содержать любые цифры, знак подчеркивания, буквы (в ранних версиях – только латинские), но не может начинаться с цифры. Длина имени определяется версией конкретной СУБД. Тип ВПП явно не задается, а определяется ее значением. Возможные типы ВПП в xBase соответствуют возможным типам полей в данной СУБД: символьные (C), числовые (N), типа даты (D), логические (L) и т.д. Присвоение переменной некоторого значения осуществляется двумя способами: STORE < выражение> TO < список_ВПП > или <ВПП> = <выражение> Из ВПП можно организовать массив. Но массив предварительно должен быть описан. Массивы могут быть одномерными и двумерными, для их описания используется служебное слово DIMENSION или DECLARE. Имена массивов и имена ВПП не должны совпадать. Элементы одного и того же массива могут быть разных типов, индексация элементов массива начинается с 1. К элементу двумерного массива возможно обращение как к элементу одномерного массива. При этом индекс такого элемента определяется порядком следования этого элемента в массиве. При описании массива всем его элементам автоматически присваивается логическое значение (.F.). ВПП могут быть PUBLIC (глобальные), PRIVATE (локальные), REGIONAL (региональные). Все переменные, которые создаются в интерактивном режиме, являются глобальными. Если ВПП создаются в программе, то они являются локальными. Эти переменные после выполнения программы уничтожаются, поэтому они допустимы для работы только в той программе, в которой созданы. Можно явно объявить характер ВПП, используя следующие команды: PUBLIC <список_ВПП> (для глобальных ВПП) или PRIVATE <список_ВПП> (для частных ВПП) Созданные ВПП можно просмотреть, используя команды: LIST MEMORY [ TO PRINT ] или DISPLAY MEMORY [ TO PRINT ] Необязательный параметр TO PRINT позволяет выводить информацию о ВПП на печать. ВПП или элементу массива можно присвоить значение, взятое из указанного поля текущей записитаблицы БД, используя команду: STORE <имя_поля> TO <имя_ВПП> Можно выполнить обратное действие, используя команду замены REPLACE. Формат команды: REPLACE [<диапазон>] <поле1> WITH <выражение1> [,<поле2> WITH <выражение2>….] [FOR / WHILE <условие>] Команда REPLACE для активной таблицы данных выполняет замену данных, находившихся в поле <поле1> на данные, приведенные в выражении <выражение1>, в поле <поле2> - на данные, приведенные в выражении <выражение2> и т.д. Диапазоном по умолчанию является одна текущая запись. В этом случае указатель записи должен быть предварительно установлен на соответствующую запись, так как команда REPLACE не перемещает указатель записи. Использование операторов FOR (WHILE) позволяет выполнять замену данных только в тех записях, для которых выражение FOR <условие> истинно или до тех пор, пока выражение WHILE<условие> истинно. Созданные в оперативной памяти ВПП можно сохранить в файле, используя команду: SAVE TO <имя_файла_ВПП>[<список_ВПП>/ALL [LIKE/EXCEPT<шаблон>]] При этом создается файл, имеющий расширение имени .MEM. Сохраняются все ВПП или ВПП, указанные в списке <список_ВПП>. Необязательные параметры позволяют сохранить в файле все ВПП, удовлетворяющие (ALL LIKE) шаблону или все ВПП, за исключением удовлетворяющих (ALL EXCEPT) шаблону (использование в шаблоне символа * означает любое количество любых символов, использование символа ? означает один любой символ). Для восстановления ВПП из файла в оперативную память используется команда: RESTORE FROM <имя_файла_ВПП> [ADDITIVE] Восстановление ВПП командой RESTORE без параметра ADDITIVE приводит к уничтожению ВПП, находившихся в оперативной памяти до выполнения этой команды. Созданные в оперативной памяти ВПП можно уничтожить, используя команду: RELEASE <список_ВПП> / ALL [LIKE/EXCEPT <шаблон>] Эта команда позволяет уничтожить ВПП, перечисленные в списке <список_ВПП> или все ВПП. RELEASE ALL – эта команда уничтожает все ВПП, аналогична команде CLEAR MEMORY. А для уничтожения переменных А1 и B1 необходимо использовать команду: RELEASE A1, B1 Необязательные параметры позволяют уничтожить все ВПП, подобные (ALL LIKE) <шаблону> или все ВПП, за исключением подобных (ALL EXCEPT) <шаблону>. В ВПП можно сохранить всю информацию, находящуюся на экране, используя команду: SAVE SCREEN TO <имя_ВПП> При этом создается переменная типа S (Screen) с указанным именем, которая хранит образ экрана. Восстановление образа экрана из ВПП осуществляется командой: RESTORE SCREEN FROM <имя_ВПП> Для сообщения СУБД о необходимости замены имени ВПП на ее значение, перед именем ВПП указывается функция макроподстановки - &. Массивы ВПП можно использовать для перемещения информации из таблицы данных в массивы и наоборот. Команда заполнения массива данными из текущей записи: SCATTER [ FIELDS <список_полей> ] TO <имя_массива> Тип каждого элемента массива определяется типом заносимого данного. Если размерность массива меньше количества заносимых полей, то автоматически создается массив необходимой размерности с тем же именем. Занесение значений элементов массива в текущую запись таблицы данных осуществляется командой: GATHER FROM <имя_массива> [FIELDS <список_полей>] При этом типы элементов массива должны совпадать с типами соответствующих полей. Необязательный параметр FIELDS позволяет работать только с теми полями, имена которых указаны через запятую в перечне <список_полей>. В переменную можно ввести данные с клавиатуры, используя команду INPUT: INPUT [<подсказка>] TO <список_ВПП> Подсказка является символьным выражением, которое выводится на экран. При вводе символьные выражения выделяются апострофами, кавычками или квадратными скобками, даты заключаются в фигурные скобки, логические константы выделяются точками. Команда подсчета записей в активной таблице данных имеет формат: COUNT [<диапазон>] [ FOR/WHILE <условие> ] [ TO < ВПП>] Записи подсчитываются в пределах диапазона ( по умолчанию ALL). При использовании необязательных параметров FOR/WHILE в подсчете используются только те записи, которые удовлетворяют условию <условие>. Результат может быть занесен во временную переменную памяти <ВПП>. Команда вычисления среднего значения для полей числового типа активной таблицы данных имеет формат: AVERAGE [<диапазон>] [ <список_выражений> ] [ FOR/WHILE < условие > ] [ TO <список_ВПП>] Обрабатываются значения всех числовых полей, если списком выражений не указано иначе. Получаемые значения могут быть занесены в переменные памяти (см.<список_ВПП>), число которых должно равняться числу обрабатываемых полей. Параметры FOR/WHILE указывают, какие записи следует обрабатывать. Диапазон по умолчанию имеет значение ALL. Команда вычисления суммдля числовых полей имеет формат: SUM [<диапазон>] [<список_выражений>] [FOR/WHILE <условие>] [TO <список_ВПП>] Диапазон по умолчанию имеет значение ALL. Операция может выполняться не над всеми числовыми полями, а лишь над полями, указанными в списке выражений. Параметры FOR/WHILE указывают, что в суммировании участвуют значения полей тех записей, которые удовлетворяют указанному условию. Полученные суммы могут быть занесены в переменные памяти, число которых должно равняться числу обрабатываемых полей. Система программирования xBase содержит около 100 стандартных встроенных функций. Ниже приведены некоторые из них.
Популярное: Как вы ведете себя при стрессе?: Вы можете самостоятельно управлять стрессом! Каждый из нас имеет право и возможность уменьшить его воздействие на нас... Личность ребенка как объект и субъект в образовательной технологии: В настоящее время в России идет становление новой системы образования, ориентированного на вхождение... Модели организации как закрытой, открытой, частично открытой системы: Закрытая система имеет жесткие фиксированные границы, ее действия относительно независимы... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (505)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |