Инструментальная Система Управления Базами Данных руководство пользователя

Вид материалаРуководство пользователя

Содержание


19.2. Понятие формулы.
Подобный материал:
1   ...   43   44   45   46   47   48   49   50   ...   53

19.2. Понятие формулы.


Как Вы уже знаете, используя аппарат формул, можно:
  • описывать правила вычисления значений простых полей базы. При этом значение вычисляемого поля хранится в конкретной записи. Это значение вычисляется при создании записи, а затем пересчитывается заново при изменении (сохранении в банке) записи.
  • включать формулы в выходные формы. В этом случае вычисления (или другие действия) последовательно производятся с данными каждой записи, выводимой по форме. Полученные при этом результаты выводятся на экран в выходной форме, однако в базе не хранятся.

В ИСУБД «CronosPlus» формулой называется выражение (или совокупность нескольких выражений), согласно которому проводится вычисление с использованием данных, хранящихся в банке. Термин «выражение» используется в том же смысле, что и в обычной математической записи. Выражение может состоять из констант, значений полей базы, переменных и функций, объединенных между собой символами операций, запятыми и скобками. В данном разделе коротко рассматриваются все участники выражений. В следующих разделах некоторые из них описаны более подробно.

При создании формул используются выражения трех видов:

1) переменная := [операнд1] [оператор] [операнд2] или

поле базы := [операнд1] [оператор] [операнд2]

2) переменная := [функция] ([операнд1], [операнд2]) или

поле базы := [функция] ([операнд1], [операнд2])

3) [функция] ([операнд1], [операнд2])

где «:=» оператор присваивания. С его помощью Вы заменяете прежнее значение переменной или поля базы, стоящее в левой части, на значение, стоящее в правой части выражения.

Операндами в формулах являются:
  • Константы – любые значения, которые задаются в выражении в явном виде. Это могут быть числа, строки (текст), значение даты или времени. При использовании констант следует придерживаться определенных правил написания:
  • Если задается числовое значение, имеющее десятичную часть, следует использовать символ «.» (например, 4.98). При задании отрицательных чисел, следует использовать символ «-», а само число, если это требуется (например, в математических выражениях) брать в круглые скобки (например, (-100)).
  • При задании строчных (текстовых) значений может использоваться любая последовательность алфавитно-числовых символов, заключенная в кавычки (например, “г. Москва”).
  • Значение даты задается в кавычках, в формате “ДД.ММ.ГГГГ” или “ДД.ММ.ГГ”, где ДД – число (не более 31), ММ – месяц (не более 12), ГГГГ и ГГ – год.
  • Значение времени задается в кавычках, в формате “ЧЧ:ММ”, где ЧЧ – часы (от 0 до 23), ММ – минуты (от 0 до 59).
  • Не числовые значения (текст, даты, время) должны обязательно заключаться в кавычки. Однако если Вы будете использовать кавычки для числовых значений, система просто проигнорирует их. Например, 2 и “2” будут восприняты системой одинаково.
  • Переменные – величины, которым присваивается имя и которые могут принимать в процессе вычислений различные значения. Переменные делятся на локальные и глобальные. Локальная переменная начинается с символа «@» (например, @с), а глобальная с символов «@@»(например, @@с). Кроме того, следует отметить, что переменные могут обрабатываться как динамические массивы (подробнее о переменных и их использовании см. ниже).
  • Поля базы – значения, хранящиеся в соответствующих полях записей базы данных. Поле базы в формулах записывается в виде <имя (мнемокод) базы><№поля>, например, ЛЦ02 или РГ1. Исключением являются сложные поля, которые должны иметь формат <имя (мнемокод) базы><№поля>_< имя связанной базы >, например, ДК02_ЛЦ.

Если после мнемокода базы и номера поля в фигурных скобках стоит число (переменная), считается что оно обозначают системный номер записи. Например:

@@А:=ЛЦ13{12}; /*глобальной переменной @@А присвоено значение поля №13 записи с системным номером 12 базы ЛЦ */

РГ07{@B}:=23; /* полю №7 записи, системный номер которой равен значению переменной @B, базы РГ присвоено значение 23*/

При выполнении формул в ИСУБД «CronosPlus» используются данные (значения) различных типов. Как Вы уже знаете, для полей базы тип (т.е. область возможных значений поля) определяется, при проектировании структуры базы данных. Таким образом, поле базы, в некоторый момент времени, содержит значение (значения) определенного типа: число, текст, дату и т.д. Переменные, в отличие от полей базы, могут в рамках одной формулы последовательно содержать значения различных типов. Поэтому, при создании формул, необходим контроль, за тем чтобы операнды, используемые в выражении, имели одинаковый тип (исключением являются функции, работающие с операндами различного типа).

Новые значения переменных или полей базы вычисляются в формулах с помощью операторов и функций. Операторы делятся на математические (арифметические) операторы и специальные операторы, предназначенные для задания условных выражений (конструкция IF-THEN-ELSE): операторы сравнения и логические (булевы). Функции также можно разделить на несколько типов, в соответствии с их назначением. Например, функции работы с датой, математические функции, функции работы со строками и т.д.

Выражения могут сопровождаться комментариями, которые располагаются в любом месте текста формулы и ограничиваются слева и справа символами «/*» и «*/» соответственно.