Cтраница 1
Процедурный файл, из которого вызываются в программе процедуры, нужно закрыть командой CLOSE PROCEDURE При попытке возвращения в программу посредством команды DO имя программы в режиме ввода команд с клавиатуры может не хватить памяти для повторного размещение программного модуля. В этом случае высвечивается меню для выполнения команд RESUME, CANCEL и QUIT. [1]
Мемориальные ордера вызывается процедурный файл, работающий с базой данных используемых в организации мемориальных ордеров. База содержит информацию о кодах, номерах, наименованиях ордеров. Предусмотрена возможность просмотра, редактирования имеющихся и ввода новых мемориальных ордеров. [2]
Балансовые счета вызывается процедурный файл, работающий с базой данных балансовых счетов. База содержит информацию о номерах счетов и их назначении. [3]
Книга журнал-главная вызывается процедурный файл, открывающий базу данных главной книги, содержащей информацию о месячных суммах дебета и кредита, проведенных по различным мемориальным ордерам на различные балансовые счета. [4]
При возврате управления процедурный файл закрывается ( если процедура вызывалась из него) и выполняется команда в программе, следующая за вызвавшей процедуру командой. Опция ТО MASTER выполняет возврат в программу высшего уровня ( в DOS или в dBASE IV) в зависимости от того, откуда был осуществлен вызов Опция ТО имя процеду-ры возвращает управление в активную процедуру с указанным именем. [5]
По скорости обработки файлы, загружаемые командой CALL, занимают следующий за процедурными файлами уровень. Файлы обоих типов располагаются в оперативной памяти. Высокая скорость исполнения двоичных файлов объясняется тем, что их содержимое хранится в машинном коде и не требует никакой интерпретации. [6]
Размещение процедур в программном файле обеспечивает более быстрое их выполнение, так как не требуется открывать и закрывать процедурный файл и считывать процедуры в оперативную память для выполнения. В то же время процедуры, которые выполняются только один раз, занимают оперативную память в течение всего времени выполнения прикладной программы. Поэтому целесообразно размещать часто выполняемые процедуры вместе с главной процедурой, а редко вызываемые - в процедурном файле. Как видно из этой схемы поиска, в качестве процедуры можно также рассматривать и обычные программные модули, хранящиеся на диске. Это позволяет разработать гибкую схему вызова процедур с целью обеспечения оптимального использования оперативной памяти. Каждая процедура ограничивается объемом 64 Кбайт. Одновременно может быть открыто до 32 процедур, в число которых входят объектные модули разработанных ранее отчетов, марок, экранных форм и запросов. [7]
Для прекращения выполнения любого программного файла используется команда CANCEL. Одновременно закрываются все открытые программные файлы и управление возвращается Б режим ввода команд с клавиатуры. Процедурные файлы не закрываются. Эта команда часто используется при отладке программ. [8]
Рассмотренный выше пример позволяет выявить и некоторые дополнительные возможности файлов процедур. Обратите внимание на то, что я далеко не всегда передаю параметры в вызываемые подпрограммы. При работе с процедурными файлами это совершенно не обязательно. Гибкость - полезное свойство, но необходимо помнить следующее: если подпрограмма, реализованная в рамках файла процедур, может вызываться из различных точек программы или несколькими программами, команды вызова должны быть согласованы как по числу передаваемых параметров, так и по типу их значений. [9]
Размещение процедур в программном файле обеспечивает более быстрое их выполнение, так как не требуется открывать и закрывать процедурный файл и считывать процедуры в оперативную память для выполнения. В то же время процедуры, которые выполняются только один раз, занимают оперативную память в течение всего времени выполнения прикладной программы. Поэтому целесообразно размещать часто выполняемые процедуры вместе с главной процедурой, а редко вызываемые - в процедурном файле. Как видно из этой схемы поиска, в качестве процедуры можно также рассматривать и обычные программные модули, хранящиеся на диске. Это позволяет разработать гибкую схему вызова процедур с целью обеспечения оптимального использования оперативной памяти. Каждая процедура ограничивается объемом 64 Кбайт. Одновременно может быть открыто до 32 процедур, в число которых входят объектные модули разработанных ранее отчетов, марок, экранных форм и запросов. [10]
Следует избегать рекурсивного вызова процедур, т.е. вызова из процедуры этой же процедуры. Процедуры можно помещать вместе с главной процедурой или отдельно в специальный файл процедур, в котором может размещаться до 1170 процедур. Практическим ограничением на число процедур обычно выступает емкость оперативной памяти, в которой размещается для выполнения как программный файл, так и файл процедур. В начале каждого объектного модуля помещается список процедур, которые в нем используются независимо от того, находятся ли они вместе с главной процедурой программы или в процедурном файле. В этот список первым ьходит и сама главная процедура под именем программного файла. [11]