Базы данныхИнтернетКомпьютерыОперационные системыПрограммированиеСетиСвязьРазное
Поиск по сайту:
Подпишись на рассылку:

Назад в раздел

ГЛАВА 7
| << | < | > | >>

ГЛАВА 7
СПЕЦИАЛЬНЫЕВОПРОСЫ


Настоящая глава содержит:

  • соглашения об именовании переменных, массивов и процедур;
  • описание системных переменных;
  • описание защиты с помощью пароля;
  • описание специальных скриптов init и instant;
  • описание ошибок в скриптах и их обработки.

СОГЛАШЕНИЯ ОБ ИМЕНОВАНИИ


PAL требует, что при именовании переменных,массивов и процедур выполнялись следующие правила:

  • Длина имен должна быть не более 132 символов.
  • Первым символом должна быть буква, A-Z или a-z.
  • Последующими символами могут быть буквы, цыфры или символы из набора: ".", "$", "!", "_".
  • Не допускается использование пробелов и знаков табуляции.
  • Различия между заглавными и строчными буквами игнорируются.
  • Имена не должны повторять зарезервированные слова системы Paradox (полный список зарезервированных слов содержится в приложении E).

Таблица 7-1. Допустимые и недопустимые имена.


Имя Допустимо? Примечания


Foo да
time.period да

     !claim       нет            начинается не  с  буквы
     claim!       да             начинается с  буквы
     l.0123       да
     5a6          нет            начинается не  с  буквы
     abc xyz      нет            содержит  пробел
     abc_xyz      да
     menu         нет            зарезервированное слово

Эти правила касаются только имен переменных, массивов и процедур PAL. Правила именования объектов системы Paradox - таблиц, полей, форм, отчетов и скриптов содержатся в главе 2 руководства пользователя системы Paradox.

Хотя имена элементов PAL могут повторять имена объектов системы Paradox, мы рекомендуем вам избегать этого. Предположим, вы использовали orders как имя таблицы и как идентификатор переменной, содержащей имя пользователя, разместившего последний заказ. Пусть вы хотите создать новую таблицу с именем этого пользователя. Вы можете нечаянно ввести его имя в кавычках:

CREATE "orders"

При этом ваш скрипт создаст таблицу с именем orders взамен той, что вы уже имели. Аналогично, если вы захотите просмотреть таблицу orders, то наберите:

VIEW orders

то вам будет предложена таблица с именем заказчика (если такая существует). Как видно, отладка облегчается, если не повторя ть имена.

Аналогично, можно использовать в качестве имен PAL слова, составными частями которых являются зарезервированные имена, например, слово IsEdit, содержащее имя опции Edit. Это не будет ошибкой,но мы рекомендуем вам избегать этого, так как становится слишком легко спутать созданные вами объекты с именами команд и функций PAL. Пользователь, не слишком знакомый с набором команд и функций PAL, может подумать, что IsEdit является функцией PAL, сообщающей, находится ли система Paradox в режиме редактирования. Поэтому безопаснее давать объектам уникальные имена, которые невозможно спутать с именами команд и функций PAL и системы Paradox.

СИСТЕМНЫЕ ПЕРЕМЕННЫЕ


PAL поддерживает три системных переменных:

  • autolib, содержащую имена библиотек, загружаемых автоматически;
  • errorproc, содержащую имя процедуры, обрабатывающей ошибки;
  • retval, содержащую возвращаемую величину.

Использование retval


Системной переменной retval присваивается значение в следующих случаях:

  • При возврате величины скрипту или системе Paradox с помощью команды RETURN переменной retval присваивается возвращаемая величина.
  • Когда величина вводится с помощью команды ACCEPT, переменной retval присваивается величина True, если пользователь ввел величину, и False в противном случае.
  • Когда осуществляется поиск записи с помощью команды LOCATE, переменной retval присваивается величина True, если запись найдена, и False в противном случае.
  • Когда таблица или запись замыкается или размыкается с помощью команд LOCK, LOCKKEY, LOCKRECORD, UNLOCK или UNLOCKRECORD, переменной retval присваивается величина True, если операция завершилась удачно, и False в противном случае.
  • Когда завершается ожидание по команде WAIT, переменной retval присваивается код клавиши, вызвавшей завершение ожидания.

Переменная retval оказывается полезной во многих случаях. Например, после окончания ожидания вы можете проверить, какая величина присвоена retval, и выполнить различные действия в зависимости от того, какой клавишей пользователь прервал ожидание. В многопользовательских прикладных системах retval можно проверить после попытки замкнуть таблицу, чтобы определить , произошло ли замыкание успешно и доступна ли таблица для использования.

Используя retval в выражениях, помните, что она автоматически изменяет свой тип в соответствии с присвоенной ей величиной.

ЗАЩИТА С ПОМОЩЬЮ ПАРОЛЕЙ


Для защиты скриптов и таблиц с помощью паролей (зашиф- ровки) используется режим Tools/More/Protect системы Paradox. Защита скриптов препятствует пользователям, не знающим пароль, изменять или просматривать текст скрипта. Запускать защищенный скрипт на выполнение может любой пользователь.

Как только скрипт или таблица объявляются защищенными, с помощью Tools/More/Protect, он немедленно зашифровывается. После этого любая попытка редактирования или отладки защищенного файла вызовет запрос пароля со стороны системы Paradox. Пароль необходимо ввести один раз в течении сеанса. Зашифровка исключает редактирование защищенного скрипта с помощью внешнего редактора и прерывание его с помощью {Ctrl}{Break}.

Одним и тем же паролем могут быть защищены несколько таблиц и скриптов одновременно. После того, как пользователь правильно введет этот пароль, все таблицы и скрипты этой группы становятся доступны.

Разработчику прикладных систем необходимо знать о защите скриптов и таблиц следующее:

1.Для защиты таблицы с помощью пароля можно использовать режим Tools/More/Protect или сокращенную команду PROTECT. Обычно для защиты таблиц, включаемых разработчиком в систему, используется Tools/More/Protect, а для защиты таблиц, создаваемых системой - команда PROTECT.

Для скриптов, работающих под управлением системы Paradox версии 2.0 или выше имеется возможность задавать дополнительные пароли, позволяющие создавать более совершенную защиту ( в режиме Tools/More/Protect). Дополнительные пароли позволяют вам определить различные уровни доступа к таблицам, полям или группам полей, в зависимости от пароля, введенного пользователем. Подробнее процесс зашифровки и дополнительные пароли описаны в главе 10 руководства пользователя системы Paradox.

Для установки системы полной защиты базы данных прикладной системы можно использовать генератор защиты. Он позволяет вам установить различные уровни доступа к каждой таблице прикладной системы. Пользователям требуется лишь ввести их имена и пароли для получения доступа ко всем таблицам. Работа генератора защиты описана в руководстве администратора сети.

2.Скрипты можно защищать только в режиме Tools/More/Protect.

3.Перед использованием защищенной таблицы в скрипте следует ввести правильный пользовательский или дополнительный пароль или с помощью команды PASSWORD, или в ответ на запрос пароля системы Paradox.

4.Если в скрипте использована защищенная таблица, то сам скрипт следует защитить для сохранения пароля таблицы в тайне. Если это не сделано, то любой пользователь, просмотрев скрипт, может узнать пароль. Обратите внимание, что для запуска скрипта нет необходимости знать пароль.

5.Если вы хотите, чтобы пользователь перед обращением к защищенной таблице вводил пароль, используйте переменную в команде PASSWORD и заставьте пользователя ввести значение этой переменной (смотри рис.7-1).

6.Если вы хотите, чтобы пользователь запускал скрипт только после ввода пароля, можно создать свой собственный метод ввода и сравнения пароля (смотри рис.7-1).

7.Убедитесь в том, что после обращения к защищенной таблице доступ к ней вновь прекращен с помощью команды UNPASSWORD, особенно если скрипт завершается возвратом в систему Paradox, а не в DOS. Если вы не защитите таблицы вновь, они остаются незащищенными до выхода из системы Paradox.

8.Защита не требует затрат дополнительных ресурсов. Необходимо только дополнительное время для кодирования защищаемого объекта.

В сети, когда несколько пользователей работают с одной и той же таблицей, применение дополнительных паролей для определения уровня доступа каждого - почти необходимое условие создания успешно работающей системы. Например, дополнительные пароли можно присвоить:

  • клеркам, занимающимся вводом данных, обеспечив им возможность ввода данных, изменения данных в незащищенных полях и просмотр всех данных; для них следует исключить возможность изменения таблиц, отчетов, проверок достоверности и др.;
  • администраторам ввода данных, обеспечив им возможность вставки и удаления данных, например, для исправления ошибок клерков;
  • администраторам прикладной системы, обеспечив им все права доступа к таблицам и полям.

При работе в сети, ввод коректного пароля обеспечивает доступ к данным только той рабочей станции, с которой был введен пароль. Пользователи на всех других рабочих станциях не получат доступа к защищенному объекту, пока они сами не введут правильный пароль.

Полностью система дополнительных паролей описана в секции "Tools/More/Protect" в главе 10 руководства пользователя системы Paradox.

Предположим, вы разработали систему управления отделением секретных агентов. Так как в ней используется важная информация, вы защитили скрипт mi6 и таблицы staff и agents с помощью пароля в режиме Tools/More/Protect. Кроме того, во избежание несанкцио нированного доступа, вы хотите, чтобы пользователи вводили пароль для запуска этого скрипта. Запустив скрипт, можно просмотреть и изменить таблицу staff, но для доступа к таблице agents, по вашему мнению, необходим дополнительный пароль. В примере на рис.7-1 приведены некоторые участки скрипт mi6, показывающие, как реализовать эту схему защиты.

; процедура ввода пароля в начале скрипта @ 0,0
?? "Enter password to run script:" ; требование ввести

                                         ; пароль
     ACCEPT "A15" TO   pwd               ;  ввод  пароля
     IF (pwd<>"goldfinger")              ;  проверка  пароля
         THEN  EXIT                      ;  выход, если  пароль
                                         ;  не  верен

SHOWMENU
...

                       ; пользователь  запросил просмотр таблицы
                       ; staff

     PASSWORD  "largo"                   ; вводится пароль табли
                                         ;  цы  staff

VIEW "staff"
WAIT TABLE

UNTIL "F2"

     UNPASSWORD     "largo"              ; возобновляется защита
                                         ; таблицы staff

                       ; пользователь  запросил просмотр таблицы
                       ; agents

@ 0,0
?? "Enter password to view Agents" ; требование ввести

                                         ; пароль
     ACCEPT "A15" TO   pwd               ;  ввод  пароля
     PASSWORD  pwd                       ;  проверка  пароля
                       ; предполагается, что errorproc обработа
                       ; ет ошибку пароля

VIEW "agents"
WAIT TABLE

UNTIL "F2"
UNPASSWORD pwd ; возобновляется защита

Рис.7-1. Защита скриптов и таблиц.

Защита не является простой процедурой. Таблицы и скрипты необходимо защитить от новичков, которые могут испортить важную информацию и от пользователей, которым доступ к данным запрещен. Поддержание высокого уровня защиты одновременно с рациональной организацией работы пользователей требует высокого уровня планирования и организации прикладной системы. Мы советуем держать скрипты и таблицы защищенными, если это возможно и снимать защиту только в случае необходимости.

В разделе "Tools/More/Protect" главы 10 руководства пользователя системы Paradox содержится общее обсуждение схем защиты и их влияния на доступ пользователей к данным.

При разработке многопользовательских сетевых систем следует пользоваться дополнительными средствами, позволяющими защи щать данные от использования и изменений, вносимых другими пользователями. Дополнительная информация содержится:

  • В главе 18 настоящего руководства, где обсуждено применение многопользовательских систем защиты.
  • В руководстве администратора сети (в разделе, описывающем работу генератора защиты системы Paradox), где обсуждена глобальная защита.

СПЕЦИАЛЬНЫЕ СКРИПТЫ


Система Paradox создает и использует несколько специальных скриптов, включая:

init, который система Paradox запускает вначале каждого сеанса;

instant, создаваемый в режиме непосредственной записи скриптов {Alt}{F3} и запускаемый в режиме {Alt}{F4};

value, создаваемый и исполняемый при вычислении значения выражения в режиме PALMenu/Value;

mini, создаваемый и исполняемый при обработке макрокоманд в режиме PALMenu/MiniScript;

savevars, создаваемый для сохранения текущих величин переменных и элементов массивов.

Вам не следует использовать перечисленные выше имена для обозначения своих скриптов, если вы не хотите получить особые эффекты. Например, чтобы предварительно загрузить значения переменных и массивов для целей тестирования, можно создать свой собственный скрипт и назвать его savevars.

Скрипт init


При запуске системы Paradox автоматически запускает скрипт с названием init. Если он найден, то он выполняется перед высвечиванием главного меню и выполнением любого другого скрипта.

Скрипт init используется для настройки системы Paradox в соответствии с требованиями пользователя. В него могут быть включены команды SETKEY для задания макрокоманд с клавиатуры, а также команды MESSAGE и RETURN для высвечивания сообщений.

В пример на рис.7-2 приведен типичный скрипт init, изменяющий текущий каталог и устанавливающий три макрокоманды клавиатуры. Кроме того скрипт сообщает день недели.

SETDIR "c:\paradox\gift" ; установка текущего каталога

SETKEY -18 RUN "emacs" ; {Alt}{E} запускает редактор SETKEY -33 RUN "format a:" ; {Alt}{F} форматирует диск SETKEY "F11" PLAY "Phonelst" ; Shift-F1 запускает Phonelst

IF DOW(TODAY())="Fri"

THEN
RETURN "TGIF!"
ELSE
RETURN "Today is", TODAY() ENDIF

Рис.7-2. Пример скрипта init.

Скрипт instant


Как сказано в главе 9, режим непосредственной записи скриптов {Alt}{F3} используется для записи специального скрипта instant, запускаемого с помощью {Alt}{F4}. Однако нет необ ходимости использовать эти клавиши для записи и воспроизведения instant. Для этого существуют и другие способы, также описанные в главе 9.

Например, режим воспроизведения скриптов {Alt}{F4} можно использовать для воспроизведения более сложных скриптов чем те, которые могут быть созданы в режиме непосредственной записи. Для воспроизведения любого скрипта с помощью {Alt}{F4} следует переименовать его в instant. При этом имейте в виду, что при записи нового скрипта instant предыдущий уничтожается.

Скрипт instant особенно полезен:

  • для создания макрокоманд клавиатуры и автоматизации выполнения повторяющихся последовательностей команд;
  • для создания прототипов функций в реальном масштабе времени (для последующего включения их в прикладную систему с помощью редактора);
  • как продуктивное средство для записи и воспроизведения важных последовательностей команд.

ОШИБКИ


Типы ошибок


Существует три типа ошибок, нарушающих работу скрипта или прикладной системы:

  • Синтаксические ошибки, представляющие собой неправильные команды, нераспознаваемые PAL. Обычно они вызваны неправильным написанием или неправильным расположением элементов в выражениях, например:

VIWE "Orders" ; неправильное написание VIEW billday = DOW(TODAY() + 30 ; пропущена правая скобка

  • Ошибки выполнения, возникающие при обработке синтаксичеки правильных команд, которые не могут быть выполнены по тем или иным причинам. Ошибка выполнения возникает при попытке просмотреть несуществующую таблицу или при работе в несоответствующем режиме. Например,

VIEW "Orders"
SCAN

[Price] = [Price] * 1.6
ENDSCAN

приведет к ошибке выполнения так как система Paradox для присваивания величин полям должна находиться в режиме Edit или Coedit. Ошибка выполнения возникает также если система Paradox не обладает достаточным количеством ресурсов для выполнения операции.

  • Логические ошибки возникают из-за некорректности в алгоритме или неправильно разработанных управляющих структур. К ним относятся зацикливание, логические вычисления, дающие неверные результаты и т.д.

Логические ошибки иногда приводят к ошибкам выполнения, например, скрипт, вызывающий себе рекурсивно, может затребовать всю оперативную память.

PAL регистрирует и сообщает о синтаксических ошибках и ошибках выполнения. Он не может идентифицировать логические ошибки. Их вам необходимо найти самостоятельно в процессе тестирования программ.

Обработка ошибок


Так как ошибки неизбежно встречаются в программах, ваши прикладные системы должны быть готовы к неожиданностям. Система Paradox имеет несколько средств локализации ошибок, выяснения типа ошибки и обработки ее внутри скрипта. Они включают:

  • функцию ERRORCODE, возвращающую номер кода, описывающий последнюю из встреченных ошибок (смотри таблицу 7-2);
  • функцию ERRORMESSAGE, возвращающую текст сообщения об ошибке, выдаваемый системой Paradox;
  • функцию ERRORUSER, применяемую в многопользовательских системах для определения имени пользователя, использующего ресурс;
  • системную переменную errorproc, которой можно присвоить имя процедуры обработки ошибок, выполняемой при возникновении ошибки; по умолчанию такая процедура отсутсвует.

Эти средства не реализованы в системе Paradox версий 1.0 и 1.1.

Таблица 7-2. Коды ошибок системы Paradox.


Код Значение


0 нет ошибки

Ошибки работы с файлами

1 дисковод не готов 3 ^ таблица уже используется 4 ^ другой пользователь замкнул таблицу

     5                файл  не  найден
     6                файл  испорчен
     7                индексный  файл испорчен
     8                не соответствует  версия  объекта
     9       ^        другой пользователь замкнул запись
     10               каталог используется другим  пользователем
     11      ^        каталог является частным каталогом  другого
                      пользователя
     12               нет доступа к каталогу на  уровне DOS
     13               индекс не соответствует порядку сортировки

14 ^^ запрещен многопользовательский доступ 15 ^^ несоответствие файлу PARADOX.NET

Общие ошибки скриптов

     20               неверный  контекст операции
     21               недостаточное количество  паролей
     22               таблица  защищена от  записей
     23               неправильная величина  поля

24 ^^ устаревшая библиотека процедур 25 ^^ недостаточные права на образец 26 ^^ неверный контекст PAL 27 ^^ операция не завершена 28 ^^ слишком много вложенных закрытых процедур

Ошибки аргументов

     30               не соответствует тип  данных
     31               аргумент выходит  за  пределы
     32               неверное  число аргументов
     33               неправильный  аргумент
     34               не  присвоена  переменная  или процедура
     35               неправильный выбор  из меню

                 Ошибки использования  ресурсов

     40               недостаточно памяти для завершения операции
     41               недостаточно места на диске для завершения
                      операции
     42               недостаточно места в стеке для  завершения
                      операции
     43               принтер  не  готов

          Ошибки операций,  ориентированных на  записи

     50               запись удалена  другим  пользователем
     51               запись изменена  другим  пользователем
     52               запись вставлена  другим  пользователем
     53               запись с этим  ключем  уже  существует
     54               запись  или  таблица не были замкнуты
     55               запись уже замкнута  вами
     56               не  найден  ключ  просмотра

                 Ошибки многотабличных операций

60 ^^ проверка целостности 61 ^^ неверная многотабличная форма 62 ^^ форма замкнута
63 ^^ связь замкнута


^ - для этих кодов можно использовать ERRORUSER, чтобы узнать имя пользователя, замкнувшего ресурс. ^^

ПРОЦЕДУРЫ ОБРАБОТКИ ОШИБОК


Средства обработки ошибок PAL позволяют обрабатывать исключительные ситуации, не прерывая выполнение скрипта. Так как процедуры обработки ошибок применимы для всех типов прикладных систем, то они особенно полезны для обработки ошибок в многопользовательских процессах.

Система обработки ошибок позволяет определять процедуру, которой передается управление для обработки ошибки исполнения. Система может определять природу ошибки и в некоторых случаях выполняет корректирующие действие. После завершения процедуры управление передается той команде скрипта, где была встречена ошибка. Вы можете задать режим повторной обработки предложения, которое привело к ошибке или перейти к следующему предложению или передать управление меню Script Error.

Если определена процедура обработки ошибок, PAL будет автоматически выполнять ее после любой встреченной ошибки. Можно задать различные процедуры обработки ошибок для различных частей вашей программы. Для этого в каждом модуле требуется присвоить переменной errorproc имя соответствующей процедуры.

Для установки процедуры обработки ошибок присвойте переменной errorproc строку, являющуюся именем этой процедуры. Процедура обработки ошибок не должна иметь аргументов. Она определяется таким же образом, как и любая другая процедура. В теле процедуры для определеня типа ошибки можно пользоваться функциями ERRORCODE и ERRORMESSAGE. Первая из них возвращает целое число, являющееся кодом типа ошибки (смотри главу 21), а вторая стандартное сообщение об ошибке этого типа.

Например, если ошибка произошла в результате недостатка места на диске, то функция ERRORCODE возвратит число 41, а ERRORMESSAGE - сообщение "Not enough disk space to complete the operation".

Некоторые из ошибок (помеченные звездочкой в списке в главе 21) являются ошибками, происходящими в результате несогласованности ресурсов в сетевых прикладных системах. Для этих ошибок можно определить имя пользователя, захватившего ресурс общего пользования, с помощью функции ERRORUSER.

Процедуры обработки ошибок должны возвращать одно из целых чисел 0, 1 или 2, в зависимости от того, каким образом вы хотите продолжить выполнение скрипта:

  • 0 вызывает продолжение выполнения скрипта с предложения, вызвавшего ошибку, т.е. предложение выполняется вновь (соот- ветствует команде отладчика {Crtl}{S};
  • 1 вызывает продолжение выполнения скрипта с предложения, следующего за тем, которое вызвало ошибку (соответству- ет команде отладчика {Crtl}{N};
  • 2 вызывает высвечивание меню Script Error, как если бы не было определено никакой процедуры обработки ошибок.

Возврат любой другой величины приводит к тому же эффекту, что и возврат величины 2. Возврат величины 0 оправдан лишь в том случае, если сделаны корректирующие действия, иначе ошибка повторится.

Правилами хорошего тона не рекомендуется слишком сильно полагаться на процедуры обработки ошибок. Вместо этого следует избегать ошибок скрипта, проверяя условия возникновения таких ошибок (например, неготовности принтера или дисководов) с использованием соответствующих команд и функций PAL.

В примере не рис.7-2 показано, как можно использовать процедуру обработки ошибок в прикладных системах с защитой паролем. Заметьте, что errorproc описана как ограниченная переменная. Внутри процедуры Handler errorproc остается неопределенной. Таким образом, если при исполнении процедуры Handler возникает другая ошибка, то процедура обработки ошибок не вызывается. Так можно избежать бесконечной рекурсии. Этот метод следует применять в любом случае, когда есть возможность возникновения ошибки при выполнении процедуры обработки ошибок. В качестве альтернативы можно исполнить команду :

RELEASE VARS ErrorProc

внутри процедуры Handler. Использование ограниченной переменной более предпочтительно, так как ее значение автоматически восстанавливается при возврате управления скрипту.

     Errorproc = "Handler"           ; устанавливает процедуру
                                     ; обработки  ошибок
     PROC Handler()                  ; определение процедуры
       PRIVATE Errorproc             ; в  случае  ошибок  внутри
                                     ; Handler
       IF (ERRORCODE() =  41)
          THEN                       ; в случае ошибки  диска
          QUIT  ERRORMESSAGE()       ; выйти из системы  и выдать
                                     ; сообщение  об ошибке
       ENDIF                         ; иначе  записать  на диск
       SAVEVARS A11                  ; значения всех переменных

             ; добавление  информации в  savevars.sc

PRINT FILE "savevars.sc" ERRORCODE(), ERRORMESSAGE() MESSAGE "Error ocurred! Please call Hank at 555-4300" ENDPROC

Рис.7-2. Использование процедур обработки ошибок

Редакторы


Для редактирования скриптов системы Paradox пригоден любой редактор тестов, обрабатывающий тексты в кодах ASCII. Вы можете использовать редактор текстов PAL, описанный в главе 10, или использовать любой другой текстовой ртедактор.

Редактор незаменим для редактирования скриптов и усовершенс твования их путем внесения в них команд программирования из меню PAL, а также для разработки и настройки скриптов, которые были сгенерированы с помощью системы Personal Programmer.

Конечно, если вам так нравится, вы можете с помощью текстового редактора писать срипты от начала до конца. Однако при этом вы не сможете пользоваться средствами автоматиченской генерации скриптов. Вам придется следить за грамматическими и синтаксическими ошибками в скриптах. Напротив, скрипты, созданные с помощью сисмтемы Personal Programmer или записанные в ходе диалога с системой Paradox, свободны от этих ошибок.

                Редактор скриптов системы Paradox
                ---------------------------------

Редактор скриптов, встроенный в систему Paradox, обладает всеми основными средствами для написания и редактирования скриптов. Его основным преимуществом является взаимосвязь с системой Paradox:

  • Редактор скриптов встроен в Paradox - вам не необхоимости покидать Paradox для редактирования скриптов.
  • Редактор скриптов является частью интегрированной среды программирования PAL, позволяющей вам немеленно тестировать и корректировать скрипты. Например, нажав всего лишь одну клавишу, вы сможете:
    • перейти непосрественно из отладчика к реактированию отлаживаемой программы;
    • выйтии из редактора скриптов и выполнить скрипт.
  • Редактор скриптов можно использовать для редактирования

    скриптов, защищенных паролем, если вы знаете этот пароль и ввели его в диалоге с системой Paradox.

  • Редактор скриптов позволяет легко включать один скрипт в другой - весьма важное средство для функции QuerySave и скриптов instant.
                     Редактор текстов ASCII
                     ----------------------

У каждого программиста есть свой любимый редактор. У вас есть возможность пользоваться этим редактором для внесения изменений в скрипты.

Так как скрипты представляют собой текстовые файлы, не содержащие скрытых кодов или специальных символов, для их редактирования можно использовать любой текстовой редактор, работающий с кодом ASCII. Например, можно использовать редакторы Sprint или Sidekick фирмы Borland, или редактор Wordstar (в недокументированном режиме). Существует также ряд редакторов, специально предназначенных для работы с системами PAL и Paradox.

Для включения вашего текстового редактора в систему Paradox следует воспользоваться опцией Editor программы Custom Configuration. Эта опция, подробно описанная в главе 14 руководства пользователя системы Paradox, вызывает ваш редактор при каждом обращении к редактору скриптов. Это позволяет при работе с вашим редактором воспользоваться большей частью преимуществ, ко торые имеет редактор скриптов, включая редактирование скриптов, защищенных паролем. Одако некоторые редакторы не обеспечивают полного включения в среду Paradox, в частности, не поддерживают редактирования отлаживаемой строки или быстрого запуска редактируемого скрипта на выполнение.

Если вы не включили ваш редактор в системиу Paradox, вы можете пользоваться им для редактирования скриптов, но это будет менее удобно. В частности, вам придется покидать Paradox каждый раз, когда возникнет необходимость редактировать. При этом невозможно будет редактировать защищенные скрипты.

Заключение


Ниже приведены некоторые советы по использованию методов создания скриптов:

  • Для создания простых скриптов и участков более сложных систем следует пользоваться методами записи скриптов.
  • Для записи часто повторяющихся наборов операций при работе с системой Paradox следует использовать режим непосредственной записи скриптов {Alt}{F3}.
  • Для записи последовательностей операций и выборов режимов из меню следует воспользоваться опцией Scripts/BeginRecord главного меню.
  • Если главное меню не высвечено, следует пользоваться опцией PALMenu/BeginRecord.
  • Для записи запросов пользуйтесь Scripts/QuerySave.
  • Для создания автономных прикладных ситстем и прототипов следует пользоваться cистемой Personal Programmer.
  • Редактор скриптов следует использовать для:
    • создания или изменения скрипта или прикладной системы;
    • усовершенствования скрипта с помощью команд PAL;
    • соединения нескольких скриптов в один;
    • усовершенствования и расширения прикладных систем, созданных с помощью Personal Programmer;
    • непосредственной записи скриптов.

ЗАПУСК СКРИПТОВ


Запустить созданный скрипт можно одним из четырех способов:

  • выбором режима Play из меню Scripts cистемы Paradox;
  • выбором режима Play из меню PAL;
  • выбором режима RepeatPlay из меню Scripts или PAL;
  • с помощью клавиши непосредственного запуска скриптов {ALT}{F4} для запуска скрипта instant;
  • запуска скрипта командной строкой в диалоге с системой Paradox или Paradox Runtime.

Режим Scripts/Play


При входе в меню Scripts на экране появится:

Play BeginRecord QuerySave ShowPlay RepeatPlay Editor


Play a script

Одним из способов запуска скриптов является выбор опции Script из главного меню системы Paradox, а затем опции Play из меню Script. Вам будет предложено ввести имя запускаемого скрипта:

Script:
Enter name of script to play, or press {Enter} to see a list of scripts.

Запускаемый скрипт должен стартовать из режима главного меню. Если вы хотите видеть все действия выполняемого скрипта, вместо режима Play следует выбрать режим ShowPlay. Подробности содержатся в главе 11 руководства пользователя системы Paradox.

Режим Play присутствует в меню Scripts даже во время записи скриптов. Это позволяет вам сцеплять скрипты вместе.

Режим PALMenu/Play


При запуске скриптов из меню PAL на экране появится:

Play RepeatPlay BeginRecord Debug Value MiniScript


Play a script.

Вторым способом запуска скриптов является вход в меню PAL {Alt}{F10} и выбор режима Play. Этот метод работает аналогично описанному выше. Одноко есть два отличия:

  • Запускаемые скрипты могут стартовать из любого режима системы Paradox.
  • Опция Play не появляется в меню PAL во время записи скрипта.

Режимы Scripts/RepeatPlay и PALMenu/RepeatPlay


При входе в режим на эране появляется:

Play BeginRecord QuerySave ShowPlay RepeatPlay Editor


Play a script a specified number of times.

Play RepeatPlay BeginRecord Debug Value MiniScript


Play a script a specified number of times.

Режим RepeatPlay меню скриптов системы Paradox или меню PAL предназначено для многократного запуска скрипта. При выборе режима RepeatPlay Paradox просит вас указать имя скрипта. Вместо этого можно нажать {Enter} и выбрать скрипт из меню. Затем Paradox спросит вас, сколько раз слеует запустить скрипт.

Введите требуемое число раз или нажмите C для непрерывного запуска скрипта. Если вы выбрали непрерывный режим, то скрипт будет запускаться снова и снова, пока вы не прервете его нажатием клавиш {Ctrl}{Break}. После этого появится меню Scriplt Error:

Cancel Debug


Stop playing script

Вам следует выбрать Cancel для завершения скрипта. Режим RepeatPlay полезен также для повторного запуска коротких последовательностей команд.

Запуск скрипта instant


Скрипт instant можно запустить из любого режима ситстемы Paradox нажатием клавиш {Alt}{F4}.

Преположим, вы хотите иметь возможность использовать {Alt}{F4} для запуска более сложных скриптов. В этом случае следует, пользуясь текстовым реактором, ввести требуемый скрипт и назвать его instant, или переименовать уже имеющийся скрипт. Если вы это сделали, ваш скрипт будет запускаться каждый раз после нажатия {Alt}{F4}.

Запуск скриптов из DOS


Описываемый способ запуска скриптов пригоден для законченных прикладных систем. Для запуска скрипта из DOS следует набрать имя скрипта в команной строке после имени системы Paradox. Например, для запуска скрипта gift слеует ввести

C>Paradox gift

и нажать клавишу {Enter}.
Скрипты, запускаемые из DOS, должны стартовать из основного режима системы Paradox. Если скрипт содержит коману EXIT, по окончании его работы произойет возврат в DOS. Если скрипт содержит коману QUIT, вы останетесь в системе Paradox. Если вы желаете запустить скрипт, можно вместо системы Paradox использовать систему Paradox Runtime. Это позволит вам разрабатывать прикланые системы для пользователей, не имеющих системы Paradox. Поробности сообщаются в руковосте пользователя ситстемы Paradox Runtime.

Ошибки и прерывания скриптов


К сожалению, ваши старания не всегда могут привести к написанию правильного скрипта, запускаемого без проблем. Типы ошибок, которые могут встретиться вам или вашим пользователям при запуске скриптов, описаны в главе 7.

Когда встречается ошибка скрипта, высвечивается меню:

Cancel Debug


Stop playing script

Вы можете выбрать:

Cancel: остановка скрипта и возврат в Paradox.

Debug: вход в отлачик PAL ля нахождения ошибки.

Отлачик отображает выполнение каждой из команд скрипта на экране, чтобы было видно, где содержится ошибка. Обнаружив ее, можно отредактировать скрипт и запустить его еще раз. Кроме того, если встречена ошибка исполнения, у вас есть возможность устранить ее, изменив условия перед продолжением работы скриптов.

Например, если ваш скрипт пытается ввести величины в таблицу и при этом не нахдоится в режиме редактитрования, вы можете, использхуя отладчик, войти в режим редактирования,нажав {F9}, а затем продолжить выполнение скрипта, нажав {Ctrl}{F9}. Конечно, один раз можно обойти ошибку таким образом, но, если вы хотите, чтобы скрипт выполнялся правильно всегда, слеует внести исправления в его соержание. Если обнаружена синтаксическая ошибка, вым необходимо исправить ее и запустить скрипт снова.

Останов выполнения скрипта


Если скрипт не защищен паролем, вы можете прервать его нажатием {Ctrl}{Break}. Бует всысвечено меню Script Error, описанное в предыущем поразделе. Заметьте, что {Ctrl}{Break} не всега приводит к немедленному останову, т.к. для останова системе Paradox необходимо прерывание.




  • Главная
  • Новости
  • Новинки
  • Скрипты
  • Форум
  • Ссылки
  • О сайте




  • Emanual.ru – это сайт, посвящённый всем значимым событиям в IT-индустрии: новейшие разработки, уникальные методы и горячие новости! Тонны информации, полезной как для обычных пользователей, так и для самых продвинутых программистов! Интересные обсуждения на актуальные темы и огромная аудитория, которая может быть интересна широкому кругу рекламодателей. У нас вы узнаете всё о компьютерах, базах данных, операционных системах, сетях, инфраструктурах, связях и программированию на популярных языках!
     Copyright © 2001-2024
    Реклама на сайте