Система управления базами данных Visual FoxPro5.0 - от начальных навыков к профессиональной работе. Крушель Е.Г - 48 стр.

UptoLike

Составители: 

94
* Программа store.prg, иллюстрирующая оператор присваивания
n=15 && присваивание
? n && простейшая форма вывода - по месту расположения
&& курсора на экране с автоматическим переводом после
&& вывода на следующую строку
n =« «+»15» && операция слияния символьных строк (конкатенация).
?? n && вывод без перевода на новую строку.
* При выполнении программы обратите внимание на различия
* в выводе чисел
и символов: 15 будет справа, а «15» - слева
USE students && файл students.dbf открывается в рабочей области A.
GO 3 && перемещение файлового указателя на запись 3
n =ФИО && в переменную n передается значения поля ФИО
&& из записи 3
? n
n =Балл01 && попытка присвоить переменной имя несуществующего
&& поля. Будет выведено сообщение об
ошибке
&& Variable ' Балл01 ' not found (переменная Балл01 не найдена)
Запустите программу на исполнение (DO store) и обратите внимание на
особенности ее работы:
при наличии ошибки программа будет частично выполнена (после вывода
сообщения об ошибке на экране будут выведены все значения n, кроме
последнего; если эта часть экрана закрыта
программным или командным окном,
переместите его мышью - за заголовок);
переменная n использовалась для обозначения данных различных типов.
2.2.2. форма 2 оператора присваивания относится к присваиванию полям
таблицы данных значений, определяемых выражением над переменными
памяти (memvar) и полями таблицы данных. Аналога этому оператору в
других языках нет. Рассмотрим два пути создания
команды:
1.
Команда присваивания для использования в командном окне имеет форму:
REPLACE <field1> WITH <expr1>[ADDITIVE] [,<field2>
WITH<expr2>[ADDITIVE]]...[<scope>][FOR <exprL1] [WHILE <exprL2>]
(Заменить поле1 выражением1, поле2 выражением2 ...для заданного диапазона <scope>
файла при условии, что истинно логическое выражение <exprL1> или <exprL2>)
2.
С помощью системного меню Table/Replace Field в открывшемся диалоге Replace
Field, имеющем ту же самую структуру, что и команда REPLACE (см. первый способ)
Вы можете задать в соответствующих полях условия для замены. Второй способ имеет
несомненные преимущества перед первым, т.к. условия не набираются «вручную», а
просто нащелкиваются мышью, что значительно экономит
время пользователя. При
этом после набора условий при нажатии кнопки OK выполненная команда отображается в
командном окне, как, впрочем, и все команды, выполняемые через системное меню (если
Вы заметили это).
Вначале рассмотрим пример
, затем подробнее опишем опции этой команды.
Набирайте в командном окне и нажимайте ENTER:
USE students
REPLACE ФИО with ФИО +»!» FOR Балл_сес01+ Балл_сес02=10
BROWSE
Вы увидите, что содержание базы данных не изменилось (хотя мы ожидали
увидеть знак ! после фамилий отличников). Это произошло из-за того, что
поле ФИО
заполнено символами на всю отведенную командой CREATE ширину (после
«смысловых» букв - пробелами), и знак »!» не поместился. Пользуясь буфером команд,
подправьте ее (удалите пробелы с помощью функции TRIM( ) ):
                                          94

* Программа store.prg, иллюстрирующая оператор присваивания
n=15                 && присваивание
?n                   && простейшая форма вывода - по месту расположения
                     && курсора на экране с автоматическим переводом после
                     && вывода на следующую строку
n =« «+»15»          && операция слияния символьных строк (конкатенация).
?? n                 && вывод без перевода на новую строку.
* При выполнении программы обратите внимание на различия
* в выводе чисел и символов: 15 будет справа, а «15» - слева
USE students         && файл students.dbf открывается в рабочей области A.
GO 3                 && перемещение файлового указателя на запись 3
n =ФИО       && в переменную n передается значения поля ФИО
                     && из записи 3
?n
n =Балл01      && попытка присвоить переменной имя несуществующего
              && поля. Будет выведено сообщение об ошибке
              && Variable ' Балл01 ' not found (переменная Балл01 не найдена)

      Запустите программу на исполнение (DO store) и обратите внимание на
особенности ее работы:
      • при наличии ошибки программа будет частично выполнена (после вывода
        сообщения об ошибке на экране будут выведены все значения n, кроме
        последнего; если эта часть экрана закрыта программным или командным окном,
        переместите его мышью - за заголовок);
      • переменная n использовалась для обозначения данных различных типов.

       2.2.2. форма 2 оператора присваивания относится к присваиванию полям
              таблицы данных значений, определяемых выражением над переменными
              памяти (memvar) и полями таблицы данных. Аналога этому оператору в
              других языках нет. Рассмотрим два пути создания команды:
1. Команда присваивания для использования в командном окне имеет форму:
                   REPLACE  WITH [ADDITIVE] [,
        WITH[ADDITIVE]]...[][FOR ]
(Заменить поле1 выражением1, поле2 выражением2 ...для заданного диапазона 
файла при условии, что истинно логическое выражение  или )
2. С помощью системного меню Table/Replace Field в открывшемся диалоге Replace
Field, имеющем ту же самую структуру, что и команда REPLACE (см. первый способ)
Вы можете задать в соответствующих полях условия для замены. Второй способ имеет
несомненные преимущества перед первым, т.к. условия не набираются «вручную», а
просто нащелкиваются мышью, что значительно экономит время пользователя. При
этом после набора условий при нажатии кнопки OK выполненная команда отображается в
командном окне, как, впрочем, и все команды, выполняемые через системное меню (если
Вы заметили это).
       Вначале рассмотрим пример, затем подробнее опишем опции этой команды.
Набирайте в командном окне и нажимайте ENTER:
       USE students
       REPLACE ФИО with ФИО +»!» FOR Балл_сес01+ Балл_сес02=10
         BROWSE
       Вы увидите, что содержание базы данных не изменилось (хотя мы ожидали
увидеть знак ! после фамилий отличников). Это произошло из-за того, что поле ФИО
заполнено символами на всю отведенную командой CREATE ширину (после
«смысловых» букв - пробелами), и знак »!» не поместился. Пользуясь буфером команд,
подправьте ее (удалите пробелы с помощью функции TRIM( ) ):