Выражение – комбинация из имен ТБД, файлов, полей, переменных памяти, массивов, констант и знаков операций. Они могут использоваться в списке, ограничениями которого являются скобки. В списке выражения имена перечисляются через запятые.
Выражения:
1. Символьные (выр С) – комбинация имен символьных полей, ПП, элементов массивов, содержащих символьные данные, и функций, возвращающих символьные значения. Часто используются символьные константы (ограничители: [ ],” ”, ‘ ’).
2. Числовые (выр N) – само число без ограничителей.
3. Логические (выр L) - в них L принимает значение.Т. или.F.
4.Выражения типа даты (выр D) – их можно складывать и вычитать.
Перевод цифровой даты в тип character с помощью функции: DTOC(<выр D>) – Date To Character.
Необходимость перевода даты в символьный тип возникает при индексации или во время запросов (т.к. команды List, Display не работают с полями типа «Dатe»):
DTOC (DATA)=’09/09/01’ – возвращает символьное значение даты.
Перевод символьной даты в цифровой тип с помощью функции:
|
|
CTOD (<выр С>) – Character To Date
CTOD (DATA)=(’09/09/01’) – возвращает календарное значение даты.
5.Выражения, использующие различные функции:
5.1.Типа текущего состояния:
- текущего номера строки: RECNO () (IF RECNO()>5 THEN GO TOP(идти наверх)).
- типа числа строк в ТБД: RECCOUNT () (IF RECCOUNT()=0 THEN APPEND BLANK(вставить пустую строку)).
- текущей даты: DATE().
- конца файла: EOF() - истина, если конец файла.
- начала файла: BOF() - истина, если начало файла.
5.2. Типа принадлежности – определяют принадлежность поля (переменной базы) ТБД к определенному РОПу (конкретной ТБД).
Пример 1:
USE Poshk
? [a.]nomp, [a.]famp && первый РОП можно не писать,
точка определяет принадлежность поля
к данному РОПу. Точка называется
квалифицированной точкой.
Пример 2:
Sele a
Use Poski
Sele b
Use Poshk
? nomp, nomd, b.nomp, b.famp
Выражение принадлежности всегда записывается для той ПБ, которая находится в файле, не относящемся к первому РОПу.
6.Часто употребляемые в выражениях строковые функции:
• STR(“<выр N>”, [<длина>], [<десятичный разряд>]) - преобразует числовое выражение в символьную строку. По умолчанию длина равна 10. Если число десятичных разрядов не указано, то число округляется до целого.
Пример 1: n=1275.3765
Str(n,7,2) && Ответ: 1275.38
Пример 2: Str(kolw,4) && Ответ: числовое значение поля kolwво всех записях файла будет заменено на символьное.
· SUBSTR(<выр C>, <начальная позиция>, <число символов>) – выделяет часть строки (подстроку).
Пример: a=’abcdef’
Substr(a,2,3) && Ответ:bcd
• Val(<выр C>) – переводит тип character в numeric.
Val – это сокращение от " VALUE " (значение) |
Пример 1: Val(famp) && Ответ: символьное значение поля fampво всех записях файла будет заменено на числовое.
|
|
Пример 2: Val(Substr(nomp,2,1)) && Ответ: во всех записях файла функция SUBSTR выделит один символ строки поля nomp, начиная со второго символа этого поля (подстроку), т.е. символьную цифру в номере поставщика, а функция Val переведёт выделенный символ в числовой тип.