|
Часть 5
6 ТОНКАЯ НАСТРОЙКА
_______________________________________________________________
На следующих далее страницах описана простая и гибкая про-
цедура, которая позволяет пользователям изменять начальные пара-
метры в момент загрузки памяти) и принятые по умолчанию значения
для команд SET.
Кроме того, в настоящую главу включен раздел, содержащий
различные рекомендации, которые помогут вам оптимизировать рабо-
ту FoxBASE+.
6.1 Возможности конфигурации FoxBASE+.
_______________________________________________________________
Файлы конфигурации
FoxBASE+ позволяет вам изменять распределение памяти и при-
нятые по умолчанию начальные значения команд SET при помощи
простой и гибкой процедуры конфигурации. Эта операция произво-
дится при помощи создания текстового файла с именем "CONFIG.FX",
или, для совместимости с dBASE III PLUS, "CONFIG.DB".
При работе FoxBASE+ автоматически производит в текущем ра-
бочем каталоге поиск файла с именем CONFIG.FX. Если этот файл не
найден в рабочем каталоге, FoxBASE+ производит поиск файла
CONFIG.FX в каталогах, приведенных в списке команды MS-DOS PATH.
(Описание команды PATH приведено в руководстве по MS-DOS).
Если файл CONFIG.FX не найден и в результате этой процеду-
ры, FoxBASE+ повторяет процесс поиска для файла с именем
CONFIG.DB.
Если файлы CONFIG.FX и CONFIG.DB не найдены, тогда исполь-
зуется встроенная конфигурация, предоставляемая по умолчанию.
В целях использования существующего файла dBASE III PLUS
CONFIG.DB без изменений, в случае, если FoxBASE+ находит в этом
файле недопустимую строку, сообщение об ошибке не выдается.
Вместо этого эта строка будет игнорироваться.
Значения числовых параметров конфигурации проверяются на
допустимость этих значений для соответствующих параметров. Недо-
пустимые значения исправляются на ближайшие к ним значения из
допустимого диапазона.
Если строка PROMPT содержит более 20 символов, она будет
усечена.
Изменение конфигурации
Конфигурацию легко изменять с помощью любого встроенного
текстового редактора (включая редактор, встроенный в FoxBASE+).
В связи с этим, после того, как вы освоитесь с FoxBASE+, наилуч-
шим подходом будет поэкспериментировать с различными конфигура-
циями для нахождения одной, которая работает наилучшим образом
на вашем компьютере с вашими программами. Тексовый файл CONFIG
содержит одну или несколько строк в следующем формате:
<параметр> = <значение>
6.2 Конфигурируемые параметры распределения
_______________________________________________________________
Большое количество параметров, которые могут быть включены
в файл CONFIG, относятся к возможностям FoxBASE+, которые управ-
ляются посредством команд SET. Однако, некоторые параметры, ко-
торые задают размеры различных таблиц, буферов, пулов памяти и
других ресурсов FoxBASE+, могут быть также определены в файлах
CONFIG. Когда ваша прикладная система создана, правильная уста-
новка параметров распределения в соответствии с максимальными
запросами системы позволит освободить дополнительную память, ис-
пользуюмую в процессе динамического распределения памяти. Чем
больше предоставлено памяти, тем лучше работает программа.
Ниже приведен перечень параметров распределения и их описа-
ния:
BUCKET Общий объем пула размером К байтов, доступный для
сохранения операторов GET и связанных с ними опера-
торов PICTURE, RANGE и VALID. Объем для хранения
оператора GET колеблется от 30 до 302 байт в зависи-
мости от соответствующих операторов PICTURE, RANGE и
VALID (в случае накличия таковых). Значение парамет-
ра должно лежать в диапазоне от 1 до 32; значение по
умолчанию 4.
EMS Этим параметром указывается, может ли FoxBASE+ ис-
пользовать расширенную память (в соответствии со
спецификацией LOTUS/INTEL/MICROSOFT). В общем случае
FoxBASE+ может сосуществовать с другими программами,
использующими расширенную память. Однако, если вы
хотите зарезервировать расширенную память для других
программ, вы можете установить EMS OFF. Если вы ис-
пользуете внешние программы, которые вы загружаете и
запускаете командами LOAD и CALL, и эти программы
используют расширенную память, вы должны знать, что
FoxBASE+ всегда размещает часть своей памяти на
странице расширенной памяти после ввода команды
CALL. Если ваши программы не учитывают этого, реко-
мендуем вам задать EMS OFF. По умолчанию установлено
ON.
FILES Этот параметр указывает количество файлов, которые
могут быть открыты в процессе работы FoxBASE+. Зна-
чение этого параметра должно лежать в диапазоне от
16 до 48; значение по умолчанию 16.
_______________________________________________________
! Значение, указанное для параметра FILES в файле !
! MS-DOS CONFIG.SYS должно быть по крайней мере на 10 !
! больше, чем значение, указанное для этого параметра !
! в файле CONFIG.FX/CONFIG.DB !
!_____________________________________________________!
HISTORY Этот параметр задает по умолчанию количество команд
в буфере HISTORY, которое будет выведено командой
LIST HISTORY. При этом, однако, фактическое количес-
тво сохраненных в буфере команд будет ограничено об-
ъемом памяти, указанным параметром HMEMORY. Значение
этого параметра должно лежать в диапазоне от 0 до
16.000; значение по умолчанию 20.
HMEMORY Общий объем памяти, доступный для хранения буфера
команд FoxBASE+ в К байт. Необходимый объем следует
вычислять, исходя из предполагаемого среднего разме-
ра команды. Для сохранения одной команды необходим
объем, раный ее длине плюс 8 байт. Значение этого
параметра должно лежать в диапазоне от 0 до 63; зна-
чение по умолчанию 5.
INDEX Этот параметр указывает расширение имени файла, ко-
торое будет использоваться по умолчанию при создании
индексных файлов FoxBASE+. Значение по умолчанию
IDX.
MENU Общий объем в К байт, доступный для хранения подска-
зок и сообщений. Значение должно лежать в диапазоне
от 1 32. Значение по умолчанию 1.
MVARSIZ Объем памяти в К байт, отведенный для строк симво-
лов, сохраняемых в переменных памяти. Значение долж-
но лежать в диапазоне от 1 до 32; значение по умол-
чанию 6.
MVCOUNT Максимальное количество переменных памяти, которое
может быть использовано. Диапазон значений от 128 до
3 600; значение по умолчанию 256.
PROMPT Этот параметр позволяет модифицировать подсказку
FoxBASE+. Значение по умолчанию - это точка со сле-
дующим за ней пробелом.
TEDIT Задает внешний текстовый редактор, который будет ис-
пользоваться с командой MODIFY COMMAND.
TIME Количество повторных попыток для устройства печати.
При этом, если устройство не готово, FoxBASE+ будет
ожидать его готовности указанное количество циклов.
Если счетчик повторов исчерпан, FoxBASE+ выдаст со-
общение об ошибке "Printer not ready. Retry? (Y/N)"
(принтер не готов. Повторить?). Значение этого пара-
метра должно лежать в диапазоне от 1 до 1 000 000;
значение по умолчанию 6000.
WP Задает внешний текстовый редактор, который будет ис-
пользоваться для редактирования полей мемо.
Алфавитный список параметров файла CONFIG.FX с их значениями
и значениями, принятыми по умолчанию.
<параметр> <значение> <умолчание>
ALTERNATE <имя файла>
BELL ON/OFF ON
BUCKET <от 1 до 64> 4
CARRY ON/OFF OFF
CENTURY ON/OFF OFF
CLEAR OFF/ON OFF
COLOR <параметры цвета>
COMMAND <команда>
CONFIRM ON/OFF OFF
CONSOLE ON/OFF ON
DEBUG ON/OFF OFF
DECIMALS <от 0 до 14> 2
DEFAULT <дисковод/каталог>
DELETED ON/OFF OFF
DELIMITER ON/OFF OFF
DELIMITER <1 или 2 символа> двоеточие
DEVICE SCREEN/PRINT SCREEN
EMS ON/OFF OFF
ECHO ON/OFF OFF
ESCAPE ON/OFF ON
EXACT ON/OFF OFF
EXCLUSIVE ON/OFF ON
F<число> <симв_выраж>
FILES <от 16 до 48> 16
HEADINGS ON/OFF ON
HELP ON/OFF ON
HISTORY <от 0 до 16000> 20
HMEMORY <от 0 до 63> 5
INDEX <расширение> IDX
INTENSITY ON/OFF ON
MARGIN <от 1 до 254> 0
MEMOWIDTH <от 8 до 256> 50
MENU ON/OFF ON
MVCOUNT <от 128 до 3600> 256
ODOMETER <числ_выраж> 100
PATH <маршрут>
PRINT ON/OFF OFF
PROMPT <симв_выраж> "."
SAFETY ON/OFF ON
SCOREBOARD ON/OFF ON
STATUS ON/OFF ON
STEP ON/OFF OFF
TALK ON/OFF ON
TEDIT <имя программы
редактора>
TIME <от 1 до 32767> 6000
TYPEAHEAD <от 0 до 32 000> 128
UNIQUE ON/OFF OFF
WP <имя программы
редактора>
6.3 Оптимизация работы FoxBASE+
_______________________________________________________________
Ниже приведены некоторые рекомендации, которые помогут вам
улучшить показатели FoxBASE+.
Разгрузка каталогов MS-DOS
Одной из наиболее распространенных причин неудовлетвори-
тельной работы FoxBASE+ явялется перегрузка каталогов MS-DOS. В
этом случае имеет место следующая ситуация:
* Прикладная система содержит 150 программ с 30 файлами базы
данных и/или индексными.
* Пользователь компилирует 150 программных файлов, создавая
при этом 150 файлов .FOX.
* Затем пользователь выполняет переиндексацию баз данных,
создавая файлы .IDX.
* Запускается прикладная программа, которая генерирует
большое количество промежуточных мелких баз данных или индексных
файлов.
В этот момент пользователь обращается в фирму и заявляет,
что мы ввели его в заблуждение в отношении нашего программного
продукта, который работает с его прикладной программой только на
хх% быстрее, чем dBASE, а не в 6 раз.
Фактически же пользователь в такой ситуации проверяет, с
какой скоростью MS-DOS может производить поиск в каталоге. Этот
процесс FoxBASE+ не контролирует.
В приведенном примере скорость поиска в каталоге может быть
значительно уменьшена по следующим причинам:
* В каталог были введены более 150 файлов, и он содержит в
текущий момент около 300 файлов. Поэтому при создании
нового файла или поиске существующего, MS-D0S должен
просмотреть 300 ссылок в каталоге вместо 150, которые
существовали ранее.
* Пул буферов MS-D0S (размер которого задан в файле
CONFIG.SYS) может быть недостаточным для размещения в нем
полностью каталога увеличенного размера. При этом
значительно увеличится количество обращений к диску при
поисках в каталоге.
* Пользователи (не имеющие достаточного опыта) обычно
недооценивают время, затрачиваемое MS-DOS на работу с
каталогами.
________________________________________________________
! Решение этой пробелмы очевидно. Вам следует очистить !
! каталоги MS-DOS. !
!______________________________________________________!
Далее приведены несколько рекомендаций, которые помогут вам
сократить количество файлов в каталогах и сократить время поис-
ка:
* Заносите ваши файлы .FOX и файлы .PRG в разные каталоги.
Обычно мы сохраняем свои файлы .FOX в главном рабочем
каталоге, а файлы .PRG в подкаталоге с именем SOURCE.
* Совмещайте программныне файлы .PRG в процедурных файлах.
Это поможет вам значительно сократить количество файлов.
Способы построения процедурных файлов приведены в главе 2 в
описании программы создателя процедурных файлов.
* Рассмотрите возможность увеличения количества буферов,
которые задаются в файле MS-DOS CONFIG.SYS. Это позволит
операционной системе содержать больший объем каталогов в
оперативной памяти.
И, наконец, заключительная рекомендация. Во многих случаях
простое удаление файлов из каталога не позволит ускорить процесс
поиска в каталоге. Причиной этого является то, что при удалении
файла соответствующая ссылка в каталоге, помечается, как свобод-
ная, но остается в каталоге. В связи с этим для того, чтобы до-
биться ожидаемого ускорения работы необходимо:
* Скопировать все файлы в новый каталог с целью исключения
всех пустых мест от удаленных файлов, или
* Сжать исходный каталог для удаления пустых мест с
использованием имеющихся вспомогательных программ (Norton
Utilities, DOS2OOLS, и т.д.)
Предоставьте FoxBASE+ достаточно памяти
FoxBASE+ является продуктом, который был разработан для ис-
пользования преимуществ современной техники. Это означает, что
он может использовать большие объемы (недорогой) памяти. Более
того, при появлении новых верcий MS-DOS, которые позволяют ис-
пользовать более 640К памяти, FoxBASE+ сможет использовать и эту
возможность.
Одним из наилучших способов оптимизировать работу FoxBASE+
является предоставление ему большого объема памяти.
Работайте с достаточным местом на диске.
На всех компьютерных системах, как крупных, так и мик-
ро-компьютерах, скорость ввода/вывода на диск значительно замед-
ляется по мере заполнения диска.
Это происходит в связи с сокращением свободного объема на
диске, при этом процедуры, распределяющие свободные объемы, тре-
буют все больше времени на поиск свбодного места на диске.
Как и в ситуации с памятью, дисководы для дисков с большим
объемом памяти становятся все дешевле. В связи с этим в настоя-
щее время редко возникает необходимость работы с силь ограничен-
ным объемом дисковой памяти.
Используйте возможности "SET TALK OFF"
FoxBASE+ может выводить информацию на экран вашего компь-
ютера гораздо быстрее, чем dBASE или любой аналогичный пакет.
Несмотря на это, FoxBASE+ выполняет другие операции так быстро,
что режим SET TALK ON может значительно замедлить его работу.
Конечно, степень замедления FoxBASE+ зависит от выполняемой
операции и объема выводимой при этом информации. Однако при ра-
боте в MS-DOS мы наблюдали ситуации, в которых включение режима
TALK замедляло скорость работы в 2-3 раза.
Используйте "SET STATUS OFF"
Замечания, сделанные выше в отношении режима TALK, относят-
ся также и к операциям с базами данных в состоянии SET STATUS
ON.
Используйте массивы
Как вам известно, в FoxBASE+ возможно использование масси-
вов переменных памяти. Они могут использоваться во многих ситуа-
циях, когда в dBASE используются макрозамены.
Если вы можете использовать массив вместо макрозамены, ско-
рость работы программы, в которой это сделано, значительно воз-
растет.
Используйте процедурные файлы
FoxBASE+ позволяет объединять в один процедурный файл до
128 отдельных программ. Объединение программ, из которых состоит
прикладная система, в один процедурный файл с использованием
процедуры foxcomp и команды SET PROCEDURE TO... для выбора этого
процедурного файла значительно увеличит скорость выполнения
программ.
Это связано с двумя основными факторами:
* Объединение нескольких программ в процедурный файл значи-
тельно сокращает количество файлов в рабочем каталоге. Ре-
жим проверки существования файла в каталоге в MS-DOS доста-
точно неэффективен. Таким образом использование процедурных
файлов увеличивает скорость выполнения всех операций с фай-
лами, поскольку при этом сокращается количество ссылок в
каталоге, которые MS-DOS должен просмотреть при открытии,
переименовании или удалении файлов.
* Команда "SET PROCEDURE TO ..." открывает канал в процедур-
ный файл, который остается открытым. Поэтому при выполнении
программы FoxBASE+, содержащейся в процедурном файле, ко-
мандой DO, не возникает необходимости открывать новые файлы
или производить поиск в каталоге. Соответственно, программа
загружается так же быстро, как одна из служебных программ
FoxBASE+.
Работайте с компилированными ранее программами
Все уже скомпилированные программы выполняются с очень
большой скоростью, обычно свойственной FoxBASE+. Однако, т.к.
исходные программы (.PRG) динамически компилируются в процессе
их загрузки (командой DO), то очевидно, что общая скорость вы-
полнения удет уменьшена из-за использования дополнительного вре-
мени на загрузку программ .PRG. Более того, компилятор foxpcomp
осуществляет более полную оптимизацию своих выходных объъектных
программ (.FOX). Поэтому, программы .FOX, скомпилированные ком-
пилятором foxpcomp, в целом будут выполняться быстрее, чем если
бы они загружались и компилировались "на лету" по команде DO в
форме .PRG.
7 Поставка прикладных программ FoxBASE+
_______________________________________________________________
Далее в настоящей главе описан процесс формирования продук-
та периода исполнения в FoxBASE+. В этом разделе приведена иноф-
рмация о том, что вы имеете право поставлять совместно с вашими
прикладными программами.
Если вы собираетесь использовать прикладные программы толь-
ко на одном компьютере или в одной сети, вы можете пропустить
эту главу.
7.1 Версии FoxBASE+ только периода исполнения
_______________________________________________________________
Для распространения ваших прикладных программ вы должны
сначала купить систему FoxBASE+ только периода исполнения. Сис-
тема FoxBASE+ только периода исполнения - это специализировнная
версия FoxBASE+, выполняющая только компилированные программы с
расширением .FOX. Кроме того, в ней удалены некоторые особеннос-
ти, используемые только в интерактивном режиме.
Купленная вами система только периода исполнения может быть
копируема и распространяема только с компилированными версиями
ваших прикладных программ. Без этой системы ваши компилированные
программы выполняться не могут. С помощью этой системы ваши
пользователи смогут выполнять прикладные программы, не имея ос-
новной программы FoxBASE+ или dBASE+, а вы сможете защитить ис-
ходный код вашей программы от самовольного распространения, рас-
пространяя только компилированные (а возможно, и засекреченные)
прикладные программы.
Фактическое имя файла FoxBASE+ периода исполнения, который
вы будет поставлять совместно с программами, зависит от приобре-
тенной вами версии FoxBASE+. В однопользовательской системе
MS-DOS соответствующий файл FoxBASE+ имеет имя FOXPRUN.EXE, а в
многопользовательской системе MS-DOS MFOXPRUN.EXE для различных
сетей PC-DOS.
Лицензия на FoxBASE+ периода исполнения принадлежит вам, и
на ней стоит серийный номер вашей системы. (Для получения инфор-
мации о присвоении уникального номера и ключа активации вашей
сисетеме только периода исполнения смотрите раздел об инстолля-
ции в главе 2 "Начало работы").
Систему FoxBASE+ только периода исполнения можно распрост-
ранять только вместе с вашими прикладными программами. Отдельно
модули этой сисетмы распространять нельзя.
В вашей организации модули системы FoxBASE+ только периода
исполнения могут распространяться беспошлинно. Конечным пользо-
вателям из других организаций они могут продаваться вместе с ва-
шими прикладными программами, но не могут раздаваться бесплатно.
Конечные пользователи ваших прикладных программ, работающих
под управлением системы FoxBASE+ только периода исполнения, не
могут самостоятельно распространять модули этой системы.
_____________________________________________________________
! Ни при каких обстоятельствах не следует передавать версии !
! FOXPLUS.EXE, MFOXPLUS.EXE или FOXCOMP.EXE другим поль- !
! зователям. !
!___________________________________________________________!
Имея систему FoxBASE+ только периода исполнения, вы имеете
право распространять неограниченное число копий этой системы
вместе с вашими прикладными программами, не внося никакой допол-
нительной платы фирме Fox Software.
Демонстрационные версии
Пользователи, желающие распространять демонстрационные вер-
сии своих прикладных программ, могут воспользоваться одним из
двух подходов. Демонстрационный пакет может включать полностью
интерактивную версию, снабженную вашим уникальным серийным номе-
ром и ключом активации демонстрационной версии. Это приводит к
автоматическому ограничению на размер прикладной программы - не
более 120 записей в каждом файле базы данных. Или вы можете соз-
дать свою собственную демонстрационную дискету, самостоятельно
определив ограничения, и распространять ее вместе с системой
FoxBASE+ только периода исполнения.
_____________________________________________________________
! В качестве дополнительного средства защиты исходного кода !
! мы рекомендуем вам вводить команду SET ECHO OFF в качест-!
! в е первой строки всех ваших прикладных программ, которые !
! вы собираетесь распространять с версией FoxBASE+ перио-!
! да исполнения. !
!___________________________________________________________!
Более подробная информация об использовании версии FoxBASE+
периода исполнения приведена в главе 2 в разделе "Выполнение
программ FoxBASE+ в версии FoxBASE+ периода исполнения".
8 Поддержка програмного обеспечения FoxBASE+.
_______________________________________________________________
Компания Fox Software, Inc., надеется, что вы не сожалеете
о принятом вами решении приобрести FoxBASE+, и что вы продуктив-
но используете ее. Мы не только считаем FoxBASE+ лучшей системой
управления базой данных, имеющейся в настоящее время, мы поддер-
живаем наш программный продукт и готовы помочь вам во всех воз-
никших у вас затруднениях.
Сотрудники по поддержке систем компании Fox Software, Inc.
готовы помочь вам во всех вопросах, которые возникают у вас при
работе в FoxBASE+. Мы также ожидаем от вас отзывов и предложений
по усовершенствованию будущих версий FoxBASE+. Мы уверяем вас,
что все ваши пожелания будут учтены наишм персоналом по систем-
ной поддержке.
8.1 Перед тем, как звонить нам...
_______________________________________________________________
Существуют несколько типичных вопросов, с которыми пользо-
ватели обращаются в Fox Software. В настоящем разделе мы попыта-
лись привести ответы на наиболее часто встречающиеся вопросы.
Принтер не готов ...
Симптомы этой ситуации следующие: При распечатке отчета
FoxBASE+ выдает сообщение "Printer not ready" (Принтер не го-
тов). Эта ошибка чаще всего происходит при использовании быстро
работающего компьютера с медленно работающим принтером.
Это означает, что параметр TIME в файле CONFIG.FX/
CONFIG.DB задан слишком малым.
Дополнительная информация о параметре TIME приведена в гла-
ве 6.
Возможность недоступна...
Это сообщение об ошибке выводится, когда вы пытаетесь ис-
пользовать одну из возможностей, не поддерживаемую FoxBASE+. Од-
нако список таких функций постоянно сокращается. Далее приведен
список возможностей dBASE III PLUS, которые в настоящее время не
поддерживаются:
* CREATE/MODIFY QUERY
* CREATE/MODIFY SCREEN - Она заменена значительно более мощным
генератором экранов Fox View.
* CATALOG
* IMPORT/EXPORT Поддержка файлов в форматах .DIF, .SYLK и .WKS
в командах COPY и APPEND. (Конечно, форматы SDF и с ограни-
чителями полностью поддерживаются командами COPY и APPEND).
8.2 Анализ
_______________________________________________________________
Для того, чтобы помочь нам в разрешении ваших проблем, воз-
никших при работе в FoxBASE+, просим вас выполнить описанную ни-
же последовательность действий:
* Проверили ли вы по руководству свои действия?
* Отвечает ли ваш компьютер специальным требованиям к аппара-
туре?
* Проводили ли вы установку FoxBASE+ с использованием соответ-
ствующих значений номера и ключа активации? Внимательно ли
вы ввели нужные значения, соответствующие напечатанному об-
разцу, соблюдая точное использование прописных и строчных
букв? Замечание: Если вы используете версию FoxBASE+ периода
исполнения, в ваш комплект будут влючены отдельно номер и
ключ активации. Обратитесь к разделу "установка FoxBASE+" в
главе 2 для проверки предпринятых шагов по инстоляции конфи-
гурации ситстемы
* Проверили ли вы файл CONFIG.FX/CONFIG.DB?
* Модифицировали ли вы файл CONFIG.SYS? Превышает ли значение
параметра FILES в файле MS DOS CONFIG.SYS значение параметра
FILES в файле FoxBASE+ CONFIG.FX/DB хотя бы на 10?
* Многопользовательская система - Работаете ли вы с версией
DOS 3.10 или выше? Поддерживает ли ваша сет стандартный
NETBIOS интерфейс?
* Многопользовательская система - Заданы ли соответствующим
образом разрешения чтения/записи?
* Многопользовательская система - На отдельно работающем ком-
пютере все время параметр EXCLUSIVE должен быть SET ON, или
должна быть загружена программа DOS SHARE. Чтобы избежать
уменьшения скорости работы во всех случаях устанавливайте
SET EXCLUSIVE ON. Программа DOS SHARE в данной конфигурации
будет снижать скорост.
* Правилен ли синтаксис соответствующей команды или функции?
Проверьте по главам 4 и 5.
* Компилировали ли вы программный файл после последней коррек-
ции?
* Обратитесь к поставщику FoxBASE+.
Если вам необходима помощь после выполнения перечисленых
выше шагов, звоните в группу поддержки программного обеспечения
Fox Software по телефону (419) 874-0162.
* Подготовьтесь отвечать на вопросы в отношении файла
CONFIG.FX.
_____________________________________________________________
! Если вы обращаетесь в Fox Software за технической по- !
! мощью, вы должны сообщить соответствующий номер продукта. !
! Кроме того, вы должны зарегистрировать приобретенный па- !
! кет в течение 45 дней со дня покупки. Если регистрация не !
! была выполнена в этот период, мы не сможем обеспечить вам !
! техническую помощь до получения фирмой данных о регистра- !
! ции. Если у вас возникает потребность в помощи в течение !
! первых 45 дней владения пакетом, будьте готовы сообщить !
! источник приобретения пакета. !
!___________________________________________________________!
Техническая помощь предоставляется с понедельника по пятни-
цу с 8:30 до 17:00 среднеевропейского времени. Укажите, в какой
помощи вы нуждаетесь и сообщите вид продукта, в отношении кото-
рого вам необходима помощь (напр. многопользовательская система
FoxBASE+, однопользовательская система FoxBASE+).
Если вы обращаетесь в Fox Software за технической помощью,
а все специалисты заняты выполнением других вызовов, ваш запрос
будет занесен в очередь запросов. По нашим правилам, чем раньше
поступил запрос, тем быстрее предоставляется обслуживание. Мы
гордимся нашим техническим обслуживанием и отвечаем на звонки
как можно быстрее, обычно в течение одного или двух часов.
Наиболее напряженный период с 11:00 до 16:00 среднеевропей-
ского времени, поэтому лучшим временем подачи заявки является
время до 10:00.
Если вы думаете, что ваш вопрос связан с проблемами прог-
раммного обеспечения FoxBASE+, или у вас есть предложение по
усовершенствованию FoxBASE+, мы попросим вас заполнить бланк
программной поддержки для последующего анализа нашим техническим
персоналом.
8.3 Бланки программной поддержки
_______________________________________________________________
На следующих страницах приведены несколько бланков програм-
мной поддержки(SSF). В этих бланках следует просто вносить соот-
ветствующую информацию в указанное место бланка. В разделе, где
должно быть приведено общее описание вопроса наряду с его под-
робным описанием, просим вас записать подробнейшим образом ваше
объяснение возникшей ситуации. Далее, необходимо привести под-
робное описание ситуации для того, чтобы мы смогли смоделировать
возникшую ситуацию.
Мы работаем только с теми бланками (SSF), в которых содер-
жится только один вопрос или предложение по усовершенствование.
Поэтому, вам возможно захочется сделать дополнительные копии
этих бланков для поддержания дальнейшей связи с нами. Если ваш
вопрос включает много программных строк, пожалуйста, приложите к
бланку дискету с исходным текстом, файлами данных и остальными
файлами, необходимыми для оценки ситуации. Пожалуйста, наклейте
на дискету этикетку с именем вашей компании и телефоном.
Заполненный бланк SSF и все дополнительные материалы должны
быть отправлены группе системной поддержки компании Fox
Software, Inc. по следующему адресу:
Fox Software, Inc
Systems Support Group
27475 Holiday Lane
Perrysburg, OH 43551
На обороте бланка поместите подробное описание и пример
проблемы. Пожалуйта, помещайте на каждом бланке только один воп-
рос.
.
яш1.0
Fox Software, Inc
FoxBASE+ Software Support Form
/Бланк системной поддержки FoxBASE+/
---------------------------------------------------------------
Фамилия _______________________________________________
Компания _______________________________________________
Адрес _______________________________________________
_______________________________________________
_______________________________________________
Телефон _______________________________________________
Конфигурация:
Версия FoxBASE+________________ Лицензия # __________________
Операционная система __________ Версия _____________________
Тип и модель процессора _______________________________________
Объем памяти __________________________________________________
Сеть __________________________ Версия сети _________________
Значения параметров конфигурации:
BUCKET_____ MVARSIZ______ MVCOUNT _________ TALK ________
SCOREBOARD________STATUS______ ESCAPE ___________
Приложения:[] гибкий диск [] информация с консоли
[] текст программы [] дополнительные замечания
[] дополнительно
Тип проблемы: [] Несовместимость с dBASE III PLUS версия ___
[] Запрос на изменение или модержнизацию
[] Проблема (повреждение или потеря данных)
[] Ошибка - программа дает неверные результаты
[] Невозможность работы
[] Работа возможна
Краткое описание проблемы: ____________________________________
_______________________________________________________________
---------------------------------------------------------------
---------------------------------------------------------------
---------------------------------------------------------------
---------------------------------------------------------------
---------------------------------------------------------------
---------------------------------------------------------------
---------------------------------------------------------------
---------------------------------------------------------------
---------------------------------------------------------------
---------------------------------------------------------------
---------------------------------------------------------------
---------------------------------------------------------------
---------------------------------------------------------------
---------------------------------------------------------------
---------------------------------------------------------------
.
Fox Software, Inc
FoxBASE+ Software Support Form
/Бланк системной поддержки FoxBASE+/
---------------------------------------------------------------
Фамилия _______________________________________________
Компания _______________________________________________
Адрес _______________________________________________
_______________________________________________
_______________________________________________
Телефон _______________________________________________
Конфигурация:
Версия FoxBASE+________________ Лицензия # __________________
Операционная система __________ Версия _____________________
Тип и модель процессора _______________________________________
Объем памяти __________________________________________________
Сеть __________________________ Версия сети _________________
Значения параметров конфигурации:
BUCKET_____ MVARSIZ______ MVCOUNT _________ TALK ________
SCOREBOARD________STATUS______ ESCAPE ___________
Приложения:[] гибкий диск [] информация с консоли
[] текст программы [] дополнительные замечания
[] дополнительно
Тип проблемы: [] Несовместимость с dBASE III PLUS версия ___
[] Запрос на изменение или модержнизацию
[] Проблема (повреждение или потеря данных)
[] Ошибка - программа дает неверные результаты
[] Невозможность работы
[] Работа возможна
Краткое описание проблемы: ____________________________________
_______________________________________________________________
---------------------------------------------------------------
---------------------------------------------------------------
---------------------------------------------------------------
---------------------------------------------------------------
---------------------------------------------------------------
---------------------------------------------------------------
---------------------------------------------------------------
---------------------------------------------------------------
---------------------------------------------------------------
---------------------------------------------------------------
---------------------------------------------------------------
---------------------------------------------------------------
---------------------------------------------------------------
---------------------------------------------------------------
---------------------------------------------------------------
.
Fox Software, Inc
FoxBASE+ Software Support Form
/Бланк системной поддержки FoxBASE+/
---------------------------------------------------------------
Фамилия _______________________________________________
Компания _______________________________________________
Адрес _______________________________________________
_______________________________________________
_______________________________________________
Телефон _______________________________________________
Конфигурация:
Версия FoxBASE+________________ Лицензия # __________________
Операционная система __________ Версия _____________________
Тип и модель процессора _______________________________________
Объем памяти __________________________________________________
Сеть __________________________ Версия сети _________________
Значения параметров конфигурации:
BUCKET_____ MVARSIZ______ MVCOUNT _________ TALK ________
SCOREBOARD________STATUS______ ESCAPE ___________
Приложения:[] гибкий диск [] информация с консоли
[] текст программы [] дополнительные замечания
[] дополнительно
Тип проблемы: [] Несовместимость с dBASE III PLUS версия ___
[] Запрос на изменение или модержнизацию
[] Проблема (повреждение или потеря данных)
[] Ошибка - программа дает неверные результаты
[] Невозможность работы
[] Работа возможна
Краткое описание проблемы: ____________________________________
_______________________________________________________________
---------------------------------------------------------------
---------------------------------------------------------------
---------------------------------------------------------------
---------------------------------------------------------------
---------------------------------------------------------------
---------------------------------------------------------------
---------------------------------------------------------------
---------------------------------------------------------------
---------------------------------------------------------------
---------------------------------------------------------------
---------------------------------------------------------------
---------------------------------------------------------------
---------------------------------------------------------------
---------------------------------------------------------------
---------------------------------------------------------------
.
яш1.5
9 Многопользовательская система FoxBASE+
_______________________________________________________________
Многопользовательская система FoxBASE+ сохраняет все воз-
можности, имеющиеся в однопользовательской системе FoxBASE+ для
операционной системы MS/PC DOS и дополнительно предоставляет
возможность доступа и последующего редактирования файлов данных
общего пользования. Все версии FoxBASE+ поддерживают многополь-
зовательский синтаксис с тем, чтобы многопользовательские прог-
раммы могли работать в однопользовательском варианте.
В настоящей главе предоставлена информация о возможностях и
функциях, реализованных в многопользовательской системе
FoxBASE+. Информация о различных типах сетей, поддерживаемых
FoxBASE+ (например, Novell) не включена в настоящее описание.
Если у вас возникли вопросы в отношении максимально возможного
количества пользователей, минимально необходимого объема памяти
или дополнительного оборудования, необходимого для функциониро-
вания таких систем, вам следует обратиться к документации по со-
ответствующей системе.
Кроме того, у вас может возникнуть необходимость обратиться
к разделам "Команды" и "Функции" руководства для получения ин-
формации о синтаксисе и работе команд и функций FoxBASE+.
9.1 Системные требования
_______________________________________________________________
Аппаратура
Ниже приведены минимальные требования к аппаратуре для ра-
боты FoxBASE+. Просим вас иметь в виду, что ваш выбор многополь-
зовательской операционной системы и типа сети может продиктовать
дополнительные требования к аппаратуре. В отношении требований к
аппаратуре вам следует обратиться к документации по соответству-
ющему программному обеспечению.
* Компьютер, поддерживающий FoxBASE+
* По крайней мере 360 Кбайт свободной памяти
Дополнительная информация по этому вопросу приведена в гла-
ве 1 в разделе "Требования к аппаратуре".
Программное обеспечение
Требуется программное обеспечение сети, которое поддержива-
ет стандартный интерфейс NETBIOS и совместимо с DOS 3.1. В боль-
шинстве случаев имеющиеся сетевые системы удовлетворяют этим
требованиям, включая и систему Novell Advanced NetWare (версия
1.02 или выше) и программу IBM PC NetWork.
FoxBASE+ также предоставляет пользователям Novell Advanced
Netware версии 2.00 и выше средства более удобного управления
принтерами и очередями.
Перед началом работы
_______________________________________________________________
В данном разделе приведена специфическая информация о мно-
гопользовательской системе FoxBASE+. Информацию о номере и про-
цедуре установки вашей системы FoxBASE+, компиляции программных
файлов, выполнении программ FoxBASE+ и другую, относящуюся к
FoxBASE+, вы можете найти в главе 2, "Начало работы".
Совместимость многопользовательской системы FoxBASE+
Многопользовательская система FoxBASE+ совместима по син-
таксису и семантике с программой Administrator dBASE III PLUS.
Программы, которые работают под управлением dBASE III PLUS
Administrator, будут также правильно работать в многопользова-
тельской системе FoxBASE+.
Существуют однако несколько областей, в которых многополь-
зовательская система FoxBASE+ предоставляет более широкие воз-
можности, чем dBASE III PLUS Administrator.
Основной областью расширения возможностей являются опера-
ции, требующие доступа только для чтения баз данных. В общем
случае, при операциях чтения базы данных без внесения изменений
запирания баз данных не производится.
Например, в dBASE III PLUS REPORT FORM не будет работать с
базой данных, если другой пользователь запер хотя бы одну за-
пись. В многопользовательской системе FoxBASE+ REPORT FORM смо-
жет работать с базой данных в том случае, если другой пользова-
тель запер одну запись файла или даже весь файл. Тот же подход
используется и в других аналогичных операциях, например TOTAL,
SUM, SORT, и т.д.
Это позволяет пользователям более жестко контролировать
свои прикладные программы. Конечно в ситуациях, когда необходима
самая последняя информация (например, общий отчет по учетным
книгам и т.д.) придется запирать базу данных, по которой форми-
руется отчет.
_____________________________________________________________
! Во избежания повреждения данных не допускайте исполь- !
! зоание dBASE III PLUS LAN PACK совместно с FoxBASE+. !
!___________________________________________________________!
Расширения многопользовательской системы FoxBASE+
FoxBASE+ предоставляет несколько дополнительных возможнос-
тей по отношению к dBASE III PLUS Administrator. К ним относят-
ся:
* Функция SYS, описанная в разделе "Функции" данной главы. Эта
возможность предоставляет разработчикам дополнительную воз-
можность доступа к основным параметрам системы, которые по-
могут эффективно и полностью использовать многопользователь-
скую систему.
* Пользователям сети Novell Advanced Netware версии 2.00 и вы-
ше предоставляется возможность более гибкого управления
принтерами и очередями. Существует возможность контроля фор-
матов, количества копий, управления флагом заголовка страни-
цы, и т.д. при выводе отчетов из FoxBASE+.
Неподдерживаемые возможности
Исходная версия многопользовательской системы FoxBASE+ не
влкючает в себя возможностей по поддержке следующих процедур
программы dBASE III PLUS Administrator.
* Кодирование файлов
* Другие возможности команды PROTECT
* LIST/DISPLAY USERS
Работа в многопользовательской системе FoxBASE+
Далее подразумевается, что вы установили свою сеть в соот-
ветствии с инструкциями, приведенными в документации по вашей
сети.
- Если это требуется вашей сетью, загрузите команду DOS
SHARE.
- Запустите сеть в соответствии с инструкцией, приведенной в
документации по сети.
- Введите команду MFOXPLUS или MFOXPRUN как это описано в
главе 2 настоящего руководства.
9.3 Глоссарий
_______________________________________________________________
Для облегчения восприятия описания возможностей многополь-
зовательской системы FoxBASE+, мы привели определения терминов,
которые будут использоваться в данном разделе описания.
Автоматическое запирание файлов (Automatic file locking)
Механизм, посредством которого файл может быть автоматичес-
ки заперт при вводе определенных команд. После завершения выпол-
нения команды файл отпирается. Кроме того упоминается при кос-
венном запирании файлов.
Автоматическое запирание записей (Automatic record locking)
Механизм, посредством которого запись может быть автомати-
чески заперта при вводе определенных команд. После завершения
выполнения команды запись отпирается. Кроме того упоминается при
косвенном запирании записей.
Конфликт (Collision)
Ситуация, возникающая при попытке пользователя использовать
запись, которая в текущий момент используется другим пользовате-
лем. Когда это происходит, может произойти повреждение данных,
если несколько пользователей собираются корректировать запись.
Многопользовательская система FoxBASE+ предоставляет полную за-
щиту от повреждения данных в таких ситуациях посредством исполь-
зования возможностей запирания записей и файлов.
Глухой замок (Deadly embrace)
Ситуация, возникающая, когда один пользователь запер запись
и хочет использовать другую запись, которая заперта другим поль-
зователем, который, в свою очередь хочет использовать запись,
запертую первым пользователем. Такие случаи редки, но их вероят-
ность возрастает по мере увеличения периода, в течение которого
запись находится в запертом состоянии.
Исключительное использование (Exclusive use)
Если пользователь открывает файл для исключительного ис-
пользования, другие пользователи не могут использовать этот
файл; ни чтение, ни запись не разрешены. Хотя некоторые много-
пользовательские операции требуют исключительного использования
баз данных, в общем случае необходимо осторожно относиться к ис-
пользованию этого режима, поскольку это связано с введением ог-
раничений для других пользователей.
Запирание файла (File Locking)
Механизм, посредством которого пользователь запрещает дру-
гим пользователям изменять (но не считываить) записи в файле ба-
зы данных. Запирание файлов предотвращает повреждение данных,
которое может произойти в случае, если один пользователь вносит
изменения в одну или несколько записей в файле в тот момент,
когда другой пользователь требует исключительного доступа для
корректировки этого же файла. Помните, что ограничения для дру-
гих пользователей доступа к записям в общем случае снижает эф-
фективность работы. Из этого правила, однако, существуют исклю-
чения. Например, при выполнении общей корректировки файла базы
данных он должен быть заперт.
Косвенное запирание файла (Implicit File Locking)
Смотрите "Автоматическое запирание файлов".
Косвенное запирание записи (Implicit Record Locking)
Смотрите "Автоматическое запирание записей".
Многопользовательская среда
Рабочая среда, основанная на сочетании многопользователь-
ской аппаратуры и программного обеспечения, которая обеспечивает
двум или более пользователям возможность одновременно использо-
вать файлы данных и периферийные устройства.
Запирание записи (Record Locking)
Механизм, посредством которого пользователь лишается воз-
можности изменения записи (дополнение или корректирование записи
в файле базы данных), которая в текущий момент корректируется
другим пользователем. Запирание записей предотвращает поврежде-
ние данных, которое может произойти в случае, если один пользо-
ватель вносит изменения в запись в тот момент, когда другой
пользователь требует исключительного доступа для корректировки
этой же записи.
9.4 Многопользвательское программирование
_______________________________________________________________
Наиболее очевидным и важным отличием между хорошими одно- и
многопользовательскими программами является предоставление воз-
можности нескольки пользователям одновременно работать с базами
данных и разрешение неизбежных в таких случаях конфликтов. При
этом обычно в программу требуется вносить не очень большие изме-
нения.
_____________________________________________________________
! Необходимо предусматривать во всех программах, которые не !
! используют базы данных в исключительном режиме, средства !
! разрешения конфликтов. !
!___________________________________________________________!
Требования к общему доступу
Многие команды FoxBASE+ подразумевают в процессе выполнения
исключительное использование всей базы данных или ее части. К
таким командам относятся все команды, способные вносить измене-
ния в базу данных или ее часть, они требуют при этом исключи-
тельного доступа к изменяемой части базы данных.
Исключительный доступ может быть организован тремя способами:
* открыть базу данных с исключительным доступом,
* предоставить командам, которые на это способны,
автоматически запирать соответствующие области базы
данных,
* вручную запереть области базы данных в вашей программе с
использованием команд и функций, существующих для этой
цели.
Если вы выберете любой из первых двух способов, в вашей
программе должна быть предусмотрена процедура ON ERROR для раз-
решения конфликтов, которые могут возникнуть, если два пользова-
теля работают одновременно. Если вы выберете третий вариант, вам
следует внести изменения в свои программы для использования ко-
манд запирания, описанных далее.
Исключительное использование базы данных
База данных открыта для исключительного использования, ес-
ли:
- установлено состояние EXCLUSIVE ON при первом занесении
базы данных в область USE, или
- путем использования ключевого слова EXCLUSIVE при занесении
файла в область USE:
USE <имя файла> EXCLUSIVE
Если файл был открыт в режиме исключительного использова-
ния, другие пользователи не смогут использовать этот файл. Отк-
рытие файла в режиме исключительного использования является
единственным способом предотвратить доступ для чтения базы дан-
ных других пользователей. Запирание базы данных при помощи функ-
ции FLOCK() не помешает многочисленным пользователям читать за-
писи. База данных не может быть открыта в режиме исключительного
использования, если она уже открыта другим пользователем. Если
база данных не может быть открыта в режиме исключительного ис-
пользования, выводится сообщение об ошибке: File is in use by
another /Файл используется другим/.
Операции, требующие исключительного открытия баз данных
Некоторые команды требуют, чтобы база данных использовалась
в исключительном режиме. К таким командам относятся:
* INSERT [BLANK]
* MODIFY STRUCTURE
* PACK
* REINDEX
* ZAP
Если предпринимается попытка выполнить какую-либо из этих
команд не в режиме исключительного использования файла базы дан-
ных, выводится сообщение об ошибке: Exclusive open file is
required /Требуется файл открытый для исключительного использо-
вания/.
Операции с автоматическим запиранием.
Следующие команды выполняют автоматическое запирание облас-
ти базы данных, на которую она воздействует, если эта область
еще не заперта или если база данных не была открыта в режиме ис-
ключительного использования. Если вы не запираете вручную, вы
должны предусмотреть в своей программе процедуру ON ERROR для
обработки конфликтов, которые могут возникнуть при использовании
таких команд.
Если файл не был открыт в режиме исключительно использова-
ния или заперт функцией FLOCK(), команды из приведенного ниже
списка автоматически запрут весь файл при выполнении.
* APPEND
* APPEND FROM
* BROWSE
* DELETE <диапазон>
* INDEX
* JOIN
* RECALL <диапазон>
* REPLACE <диапазон>
* UPDATE
Обратите внимание, что команды DELETE, RECALL и REPLACE с
указанием диапазона запирают всю базу данных, в отличие от тех
же команд с указанием параметров NEXT 1 или RECORD. Если база
данных или запись в базе данных уже заперты другим пользовате-
лем, приведенные выше команды не смогут быть выполнены. Если
файл не может быть заперт, выводится сообщение об ошибке: File
is in use by another /файл испльзуется другим/. После завершения
выполнения соответствующей команды файл отпирается.
---------------------------------------------
|Команда Что запирается |
---------------------------------------------
|APPEND База данных |
|APPEND BLANK Заголовок базы данных|
|APPEND FROM База данных |
|BROWSE База данных |
|DELETE Текущая запись |
|DELETE NEXT 1 Текущая запись |
|DELETE База данных |
|DELETE RECORD Запись |
|INDEX База данных |
|JOIN База данных |
|RECALL Текущая запись |
|RECALL NEXT 1 Текущая запись |
|RECALL База данных |
|RECALL RECORD Запись |
|REPLACE NEXT 1 Текущая запись |
|REPLACE База данных |
|REPLACE RECORD Запись |
|UPDATE База данных |
---------------------------------------------
Если запись не закрыта непосредственно при помощи одной из
команд запирания, команды DELETE, RECALL и REPLACE с указанием
диапазона NEXT 1 или RECORD автоматически запирают эту за-
пись. Кроме того команды DELETE и RECALL без указания диапазона
автоматически запирают текущую запись. После завершения операции
запирание записи отменяется. Если операция не может быть выпол-
нена в связи с тем, что другой пользователь запер файл или за-
пись, выводится сообщение об ошибке: Record is in use by
another/Запись используется другим/.
Команда APPEND BLANK автоматически запирает дополняемую за-
пись и заголовок файла. В связи с этим необходимо отедльно расс-
мотреть команду APPEND BLANK. При выполнении команды APPEND
BLANK с файлом могут без конфликтов работать и другие пользова-
тели. Однако если при этом другой пользователь также использует
команду APPEND BLANK, будет выведено сообщение об ошибке. Необ-
ходимо обработать эту ошибку или использовать функцию FLOCK()
для запирания всей базы данных. Ошибка, которая выводится, если
два пользователя пытаются одновременно выполнить команду APPEND
BLANK, сопровождается выводом сообщения:
File is in use by another/Файл используется другим/. В качестве
примера приведена программа, которая обрабатывает ошибки при
возникновении конфликтов.
Пример программы:
***
***Test.prg демонстрирует обработку ошибок для команды
***APPEND BLANK
***
ON ERRROR DO Fix
USE Video
APPEND BLANK
ON ERROR
***
***Fix.prg процедура ошибки для программы Test.prg
***
IF ERROR() = 108
@ 23,0 SAY "PLEASE WAIT TO APPEND A RECORD."
RETRY
ELSE
@ 23,0 SAY "PLEASE SEE YOUR SYSTEM ADMINISTRATOR ABOUT;
THIS ERROR" +MESSAGE()
WAIT
ENDIF
Функции для прямого запирания
В многопользовательской системе FoxBASE+ существуют три
функции для запирания. Функция FLOCK() используется для запира-
ния файла, а функции RLOCK() и LOCK() используются для запирания
записи. Функции RLOCK() и LOCK() работают аналогичным образом.
Для отмены запирания файла или записи существуют две команды.
Команда UNLOCK отменяет текущее сотояние "заперто" в активном
файле базы данных. Команда UNLOCK ALL отменяет все режимы "за-
перто" во всех записях и файлах во всех рабочих областях. Более
подробное описание команд и функций запирания и отпирания приве-
дено в разделах "Команды" и "Функции" настоящей главы.
Функции запирания работают следующим образом:
* Проверяется статус запирания записи или файла.
* Открытая запись или файл запираются.
* Выводится лонгическое значение, зависящее от результата
проверки статуса запирания.
Функции запирания могут быть использованы от точечной подс-
казки для проверки доступности записи или файла. Например:
*.SET EXCLUSIVE OFF
*.USE Video
*.? FLOCK()
*.T.
Поскольку файл мог быть заперт, он был заперт и было выве-
дено логическое значение .T. Однако если бы в файле была запер-
тая запись или весь файл был заперт другим пользователем, выпол-
нить запиранине файла было бы невозможно и было бы выведено ло-
гическое значение .F. Вот более полезный пример:
SET EXCLUSIVE OFF
USE Video
IF FLOCK()
REPLACE ALL Cost_rent WITH Cost_rent + 1.00
UNLOCK
ELSE
@ 22,0 SAY "File in use by another."
ENDIF
В приведенном выше примере база данных Video открывается
для общего доступа. Функция FLOCK() комбинируется со структурной
командой IF...ELSE...ENDIF для определения статуса запирания.
Если файл может быть заперт, поскольку никакие другие пользова-
тели не запирали его, выполняется команда REPLACE ALL. После за-
вершения операции REPLACE ALL вводится команда UNLOCK для отмены
запирания файла. Если файл не может быть заперт в связи с тем,
что он уже заперт другим пользователем, запирание не выполняется
и выводится соответствующее сообщение. Помните, что функции за-
пирания выводят логическое значение и не могут быть использованы
с оператором сравнения (>, < и т.д.).
Существуют две команды, которые требуют, чтобы запись была
непосредственно закрыта. Это команда REPLACE без указания диапа-
зона и команда READ. Эти команды не могут быть выполнены, если
запись или файл не закрыты непосредственно при помощи функций
LOCK(), RLOCK() или FLOCK(). Кроме того, эти команды могут быть
выполнены с файлом, который открыт для работы в исключительном
режиме. Попытка выполнения этих команд с незапертыми записями
или файлом приводит к выводу сообщения о следующей ошибке:
Record is not locked (Запись не заперта).
Функции без запирания
Команды, которые только читают базу данных, не требуют,
чтобы база данных или отдельные записи были заперты. Выбор режи-
ма предоставляется разработчику. Хотя при разработке системы это
может потребовать дополнительного анализа, полученная в резуль-
тате гибкость вполне оправдывает дополнительные затраты.
_____________________________________________________________
! При этом, если выполняемая операция требует последней !
! версии данных, другие пользователи должны быть лишены !
! права записи в файл путем открытия его в режиме исключи- !
! тельного использования или путем запирания файла. !
!___________________________________________________________!
* AVERAGE
* COPY
* COUNT
* COPY STRUCTURE
* DISPLAY
* LABEL
* LIST
* LOCATE
* REPORT
* SORT
* SUM
* TOTAL
9.5 Процедуры "ON ERROR"
_______________________________________________________________
Если файл базы данных не был открыт с исключительным стату-
сом EXCLUSIVELY или заперт при помощи одной из функций для пря-
мого запирания, любая команда, которая автоматически запирает
файл или требует статуса файла базы данных EXCLUSIVE потенциаль-
но может вызвать ошибку. В режиме точечной подсказки эти ошибки
могут быть достаточно просто обработаны вручную. Однако, если в
вашей прикладной программе используются эти команды, вам прий-
дется применять процедуру ON ERROR для обработки таких ошибок.
Ниже приведен пример простой процедуры обработки ошибок.
****
****Программа: MULTI.PRG
****Этот сегмент программы демонстрирует использование
****ON ERROR для обработки ошибок, вызванных конфликтами в
****многопользовательской системе FoxBASE+
****
SET PROCEDURE TO Multi
ON ERROR DO Err_fix WITH ERROR(),MESSAGE(),SYS(16)
SET EXCLUSIVE OFF
USE Video
DO App_blank
DO Rep_next
DO Rep_all
DO Rep_curr
DO Add_recs
SET PROCEDURE TO
ON ERROR
PROCEDURE App_blank
****Добавить пустую запись
APPEND BLANK
PROCEDURE Rep_next
****Заменить данные в текущей записи(диапазон-следующая запись)
REPLACE NEXT 1 Cost_rent WITH Cost_rent + .25
PROCEDURE Rep_all
****Заменить данные во всех записях
REPLACE ALL Cost_rent WITH Cost_rent + .25
UNLOCK
PROCEDURE Rep_curr
****Заменить данные в текущей записи (диапазон отсутствует)
REPLACE Cost_rent WITH Cost_rent + .25
PROCEDURE Add_recs
****Ввести записи из другого файла
APPEND FROM New_vids
UNLOCK
****
****Программа: Err_fix.prg
****Эта программа вызывается при обнаружении ошибки
****
PARAMETERS Errnum,Mess,Curr_prg
****Ошибка:файл используется другим
IF Errnum=108
IF Curr_prg="C:APP_BLANK.PRG"
@ 23,0 SAY "Please wait to append a blank record."
RETRY
ENDIF
IF Curr_prg="C:REP_ALL.PRG" .or. Curr_prg="C:Add_recs.PRG"
TIME = 0
@ 23,0 SAY Mess
DO WHILE .NOT. FLOCK() .OR. TIME < 1000
TIME = TIME + 1
ENDDO
IF TIME < 1000
@ 23,0 CLEAR
RETRY
ELSE
@ 23,0 SAY "File cannot be locked. Try again later"
ENDIF
ENDIF
ENDIF errnum=108
****Ошибка:запись используется другим
IF Errnum=109 .and. Curr_prg="C:REP_NEXT.PRG"
TIME=0
@ 23,0 SAY Mess
DO WHILE .NOT. RLOCK() .or. TIME < 1000
TIME = TIME + 1
ENDDO
IF TIME < 1000
@ 23,0 CLEAR
RETRY
ELSE
@ 23,0 SAY "Record cannot be locked. Try again later"
ENDIF
ENDIF errnum=109
****Ошибка:запись не заперта
IF Errnum=130 .and. Curr_prg="C:REP_NEXT.PRG"
TIME=0
@ 23,0 SAY Mess
DO WHILE .NOT. RLOCK() .or. TIME < 1000
TIME = TIME + 1
ENDDO
IF TIME < 1000
@ 23,0 CLEAR
RETRY
ELSE
@ 23,0 SAY "Record cannot be locked. Try again later"
ENDIF
ENDIF errnum=130
9.6 Многопользовательские команды
_______________________________________________________________
В данном разделе описаны команды FoxBASE+, используемые в
многопользовательском режиме. В описание каждой команды включен
формат этой команды и описание ее работы.
Некоторые из приведенных команд используются только в мно-
гопользовательском режиме, другие команды могут использоваться
как в много-, так и в однопользовательском режимах. Однако все
версии FoxBASE+ поддерживают синтаксис команд, специфических для
многопользовательского режима; в связи с этим программный много-
пользовательский код достаточно просто переносим в любую среду
FoxBASE+.
CHANGE
Эта команда обеспечивает выполнение полноэкранного редакти-
рования указанных полей в текущей базе данных. Команда CHANGE
работает аналогично команде EDIT.
Если вы хотите использовать команду CHANGE в отношении фай-
ла общего пользования, запись должна быть заперта посредством
нажатия CTRL-O перед вводом данных.
Доплонительная информация по этому вопросу приведена в опи-
саниях команд CHANGE и EDIT в главе "Команды".
DISPLAY STATUS
Эта команда позволяет получить информацию о статусе в теку-
щем сеансе работы в FoxBASE+. При этом и в многопользовательской
и в однопользовательской среде выводится много полезной информа-
ции. В многопользовательской среде дополнительно выводятся сле-
дующие параметры:
* Статус запирания для каждого из открытых файлов базы данных
* Список закрытых в текущий момент записей в каждом файле
базы данных.
Дополнительная информация по этому вопросу приведена в опи-
сании команды DISPLAY STATUS в главе "Команды".
EDIT
EDIT это полноэкранная команда, которая позволяет вам ре-
дактировать содержание отдельных записей в активном файле базы
данных. Команда EDIT работает аналогично команде CHANGE.
Если вы хотите использовать команду EDIT в отношении файла
общего пользования, запись должна быть заперта посредством нажа-
тия CTRL-O перед вводом данных.
Дополнительная информация по этому вопросу приведена в опи-
саниях команд CHANGE и EDIT в главе "Команды".
LIST STATUS
Эта команда позволяет получить информацию о статусе в теку-
щем сеансе работы в FoxBASE+. При этом и в многопользовательской
и в однопользовательской среде выводится много полезной информа-
ции. В многопользовательской среде дополнительно выводятся сле-
дующие параметры:
* Статус запирания для каждого из открытых файлов базы данных
* Список закрытых в текущий момент записей в каждом файле
базы данных.
Дополнительная информация по этому вопросу приведена в опи-
сании команды LIST STATUS в главе "Команды".
RETRY
Команда RETRY передает управление вызвавшей программе. Пос-
ледняя строка, выполненная в вызвавшей программе, выполняется
повторно. Команда RETRY аналогично команде RETURN с тем отличи-
ем, что в случае команды RETURN выполняется следующая строка
вызвавшей программы, а не повторяется выполнение последней ис-
полненной, как в команде RETRY.
Команда RETRY может быть использована в случае, если необ-
ходимо выполнять некоторую последовательность команд до тех пор,
пока не будет выполнено некоторое условие. В многопользователь-
ском программировании команда RETRY может быть использована при
обработке ошибок для повторения выполнения команды до тех пор,
пока запись или файл не станут доступны и команда сможет быть
выполнена. Обязательно введите в программу обработки ошибок воз-
можность для пользователя прекратить работу во избежание ситуа-
ции глухого замка.
Дополнительная информация о команде RETRY приведена в главе
"Команды".
SET
Команда SET это управляемая меню команда, которая позволяет
выводить и изменять значения, установленные для различных пара-
метров команды SET.
Дополнительная информация по этому вопросу приведена в опи-
сании команды SET в главе "Команды".
SET EXCLUSIVE
Команда SET EXCLUSIVE позволяет вам задать статус совмест-
ного использования для открытых файлов баз данных.
В состоянии SET EXCLUSIVE ON никакой другой пользователь не
может работать с используемыми вами файлами базы данных. В сос-
тоянии SET EXCLUSIVE OFF все открываемые файлы баз данных могут
использоваться многими пользователями.
_____________________________________________________________
! Изменение состояния команды EXCLUSIVE не влияет на состо- !
! яние ранее открытых баз данных. !
!___________________________________________________________!
SET PRINTER
Формат 1: SET PRINTER TO
[\\<имя компьютера>\<имя принтера>=<приемник>]
Формат 2: SET PRINTER TO [\\SPOOLER[\]
[\F=][\B=][\C=][\P=]]
Формат 3: SET PRINTER TO [<устройство/файл>]
Вывод FoxBASE+ на принтер переадресуется на сетевое или ло-
кальное устройство в соответствии с выбранным форматом команды
SET PRINTER. Устройством печати по умолчанию является устройство
DOS PRN. Кроме того, формат 3 предоставляет возможность занесе-
ния в файл. После ввода команды SET PRINTER печать выводимых
файлов или их сбор в определенный файл спулинга продолжается до
ввода другой команда SET PRINTER. Команда SET PRINTER без пара-
метров возвращает назначение устройства печати по умолчанию (PRN
в MS/DOS).
В формате 1 принтером назначается принтер сети. <имя компь-
ютера> это сетевое имя, назначенное станции. Это имя назначается
администратором сети и должно быть уникальным. Имя принтера это
имя, назначенное для принтера, оно также назначается администра-
тором сети.
LPT1, LPT2 или LPT3 используются для обозначения установ-
ленного принтера.
Формат 2 предназначен для печати в системе Novell Advanced
Netware версии 2.00 и выше. Параметр "SPOOLER" должен быть ука-
зан для совместимости, но игнорируется. Параметры для этого фор-
мата приведены ниже:
NB Без титула. Подавляет печать титульной страницы.
F=n Форматы. Это позволяет назначать печатаемым файлам
различные форматы. Разрешенный диапазон значений от
0 до 255. Эта возможность может быть использована
на принтерах, используемых для печати различных
финанстовых документов, напр. чеков, счетов, писем.
B=c Имя титула. Эта возможность устанавливает заголовок
на титульной странице, как строку символов ASCII
длиной 12 символов. Заголовок по умолчанию это имя
пользователя.
C=n Количество копий. Этот параметр может иметь значение
в диапазоне от 1 до 255. По умолчанию установлен
один экземпляр.
P=n Номер принтера. Эта возможность позволяет выбрать
определенный принтер сети, на котором будет выполнен
вывод. По умолчанию 0.
Формат 3 используется для назначения принтером локального
устройтсва или файла. Более подробная информация приведена в
описании команды SET PRINTER в главе 4.
SET STATUS
Если установлено SET STATUS ON, на строке статуса будут вы-
водиться в соответствии с операцией сообщения "Exclusive Use",
"File Locked", "Read Only", "Record Locked", "Record Unlocked"
/Исключительное использование, Файл заперт, Только для чтения,
Запись заперта, Запись отперта/.
Дополнительная информация приведена в разделе "Команды" в
описаниях команд SET STATUS и SET SCOREBOARD.
UNLOCK
Команда UNLOCK позволяет вам отменить состояние запирания
для всех записей и/или файлов активной базы данных. Текущие сос-
тояниями запирания записей определяются последними использован-
ными функциями FLOCK(), LOCK() или RLOCK() в отношении файла ба-
зы данных в используемой в текущий момент рабочей области.
Команда UNLOCK ALL отменяет все состояния запирания всех
записей и файлов во всех рабочих областях.
USE EXCLUSIVE
Команда USE EXCLUSIVE открывает базу данных и связанные с
ней файлы для использования в исключительном режиме.
Дополнительная информация приведена в описании команды USE
в главе "Команды".
9.7 Многопользовательские функции
_______________________________________________________________
В данном разделе описаны функции FoxBASE+, работающие в
многопользовательской конфигурации. В описание каждой функции
включен формат этой фукцнии и описание ее работы.
Некоторые из приведенных команд используются только в мно-
гопользовательском режиме, другие функции могут использоваться
как в много-, так и в однопользовательском режимах. Однако все
версии FoxBASE+ поддерживают синтаксис функций, специфических
для многопользовательского режима; в связи с этим программный
многопользовательский код достаточно просто переносим в любую
среду FoxBASE+.
ERROR
Функция ERROR выводит число, которое соответствует ошибке,
вызвавшей условие ON ERROR.
Эта функция может быть использована в многопользовательской
конфигурации для определения причины исправимой ошибки, как нап-
ример, неудавшаяся попытка запирания.
FLOCK
При обнаружении функции FLOCK() FoxBASE+ предпринимает по-
пытку запереть весь выбранный файл базы данных.
Если попытка запереть файл успешно выполняется, функция
FLOCK() выводит логическое значение .T., и вам предоставляется
доступ для чтения и записи во все записи файла базы данных в ис-
ключительном режиме.
Если попытка запереть не удалась, функция FLOCK() выводит
логическое значение .F.. Это означает, что либо вся база данных
была заперта другим пользователем, либо другим пользователем бы-
ла заперта одна запись. В этом случае исключительный доступ к
файлу не предоставляется. Ниже приведен пример сегмента програм-
мы, использующего функцию FLOCK().
USE Video
IF FLOCK()
COPY TO Video2
UNLOCK
ELSE
? "Database is not available"
ENDIF
Как указано в приведенном выше фрагменте программы, команда
UNLOCK отпирает запертую базу данных. Запертая база данных авто-
матически отпирается при закрытии ее командами USE, CLEAR ALL,
CLOSE DATABASE или QUIT.
MESSAGE
Функция MESSAGE выводит текущую строку сообщения об ошибке.
Для получения строки сообщения об ошибке должна быть акти-
вирована команда ON ERROR.
Эта функция может быть использована в многопользовательской
конфигурации для вывода сообщений об ошибке на экран соответст-
вующего монитора.
RLOCK или LOCK
Функции RLOCK() и LOCK() идентичны. Приведенное ниже пояс-
нение относится к функции RLOCK(), однако оно может быть отнесе-
но и к функции LOCK(). При обнаружении функции RLOCK(0), если
текущая запись базы данных еще не заперта, FoxBASE+ предпринима-
ет попытку закрыть эту запись. В любом случае функция RLOCK()
или LOCK() выводит значение .T. или .F..
Если функция RLOCK() выводит .T., это означает, что вам
предоставлены права чтения и записи в запись. В дополнение при
необходимости RLOCK() прочитает текущую запись базы данных для
проверки того, не изменилось ли ее содержание.
Если функция RLOCK() выводит .F., это означает, что запись
была закрыта другим пользователем, и вы можете только читать
запрошенную запись. Ваши действия в такой ситуации зависят от
запросов вашей прикладной программы. Ниже приведен фрагмент
программы, использующий функцию RLOCK().
SEEK custname
IF RLOCK()
SET FORMAT TO custfile
READ
ELSE
? "Customer record is not available"
ENDIF
Запертая запись автоматически отпирается, если содержащий
ее файл базы данных закрывается командами USE, CLEAR, CLOSE или
QUIT.
Удаление запертой записи не приводит к автоматическому от-
пиранию на дискете.
SYS
SYS это функция оценки строки символов. В зависимости от
значения числового аргумента <число> она выводит различные сис-
темные параметры.
Функция SYS в основном ориентирована на использование прог-
раммистами в многопользовательской среде. Подробная информация
об этой функции приведена в главе 5.
9.8 Сообщения об ошибках в многопользовательском режиме
Ниже приведен список сообщений об ошибках для многопользо-
вательской версии FoxBASE+. После текста сообщения об ошибке в
скобках приведен соответствующий номер ошибки.
/Запись в файл только для чтения невозможна/.(111)
Была сделана попытка записи в файл, который был создан
только для чтения.
/Требуется файл, открытый в режиме исключительного использования/
(110)
Была сделана попытка использования команд INSERT [BLANK],
MODIFY STRUCTURE, PACK, REINDEX или ZAP с файлом, который
не был открыт в режиме исключительного использования.
Вновь откройте файл при помощи комнанды USE EXCLUSIVE или
установите SET EXCLUSIVE ON и вновь откройте файл.
/Файл используется другим/(108)
Была сделана попытка открыть файл, который был открыт
другим пользователем для использования в исключительном
режиме, или была сделана попытка открыть в режиме
исключительного использования файл, который был ранее
открыт другим пользователем.
/Недопустимое переназначение принтера/(124)
Либо не установлен маршрут к принтеру, либо устройство
печати не общего пользования.
/Запись используется другим/(109)
Была сделана попытка запереть запись, которая заперта
другим пользователем.
/Запись не заперта/(130)
Была сделана попытка выполнить команду REPLACE или
@...SAY...GET для записи, которая не была заперта. Заприте
запись и повторите команду.
/Запереть невозможно/
В командах EDIT или CHANGE был введен символ Ctrl-O для
запирания записи, которая заперта другим пользователем.
10 Сообщения об ошибках
Ниже приведен список сообщений об ошибках FoxBASE+. Вслед
за текстом сообщения в скобках приведен номер соответствующей
ошибки. В конце настоящего раздела приведена таблица номеров
ошибок с текстовыми сообщениями, упорядоченных по номерам.
/** или ^ внутренняя ошибка операции/(78)
Была предпринята попытка возведения в степень отрицательно-
го основания.
/Команда READ активна/(1249)
Была предпринята попытка использовать команду READ, @...GET
или CLEAR GETS в процедуре ON KEY или из оператора VALID
команды @...GET была вызвана заданная пользователем функ-
ция.
/Имя ALIAS уже используется/(24)
Была предпринята попытка выполнить команду USE для базы
данных с именем из одной буквы с А по J или с псевдонимом
ALIAS, который назначен для другой уже используемой базы
данных.
/Имя ALIAS не найдено/(13)
Была сделана попытка либо использовать псевдоним вне диапа-
зона с А по J, либо указанный псевдоним ALIAS не был опре-
делен.
/Попытка переместить файл на другое устройство/(1153)
Файл не может быть перемещен командой RENAME на дургое уст-
ройство.
/Попытка использовать более 2048 имен/(1201)
При загрузке программы или открытии базы данных было превы-
шено обще количество имен 2048. Для исправления этой ошибки
расчлените программу на небольшие модули.
/Недопустимый указатель дисковода/(1907)
В команде DIR был указан недопустимый указатель дисковода.
/Недопустимый аргумент длины или дробной части/(1908)
В функции STR() был указан недопустимый аргумент для длины
или дробной части числа.
/Обнаружено начала файла/(38)
Указатель записи был размещен ранее первой записи в файле.
/Вне строки/(62)
Была предпринята попытка доступа к символам, расположенным
далее последнего байта символической переменной памяти или
поля базы данных.
/Невозможен доступ к выбранной базе данных/(1152)
Была предпринята попытка выбрать базу данных вне диапазона
от 1 до 10, или была сделана ссылка на переменную файла в
неоткрытой базе данных.
/Невозможно создать файл/(1102)
Операционная система передала FoxBASE+ сообщение об ошибке,
указывающее, что новый файл не может быть создан. Невозмож-
ность создать новый файл является чаще всего результатом
переполнения диска или каталога, недопустимого имени файла,
или отсутствие необходимых указания для входа в каталог, в
котором должен быть создан файл.
/Невозможно открыть файл/(1101)
Операционная система передала в FoxBASE+ сообщение об ошиб-
ке, указывающее, что файл не может быть открыт. Невозмож-
ность открыть файл чаще всего связана с попыткой открыть
несуществующий файл, ошибкой при вводе имени файла или от-
сутствии соответствующего права доступа, которое необходимо
для использования файла.
/Невозможно откорректировать файл/(1157)
Эта ошибка очень необычна. Она может произойти только если
ошибочная ситуация возникнет в процессе записи на диск -
исчерпано свободное место, сбой диска и т.д.
/Невозможна запись в файл только для чтения/(111)
Была предпринята попытка записи в файл, который был создан
только для чтения.
/Скомпилированный код этой строки слишком длинный/(1252)
Объектный код, созданный для этого оператора, превысил раз-
мер внутреннего кодового буфера FoxBASE+. Указанная строка
содержит слишком много длинных выражений и должна быть раз-
делена на несколько строк.
/CONTINUE без LOCATE/(42)
Была предпринята попытка выполнить команду CONTINUE без вы-
полнения перед ней команды LOCATE.
/Циклическая связь/(44)
Команда RELATION указывает на базу данных, которая уже свя-
зана.
/Несоответствие типов данных/(9)
Выражение считается недопустимым в FoxBASE+, поскольку оно
состоит из типов данных, которые не могут быть использованы
совместно, поскольку тип данных не соответствует выражению
FoxBASE+, или операция с двумя базами данных предполагает,
что два поля имеют одинаковый тип данных (напр., в командах
UPDATE...REPLACE, SET RELATION).
/База данных не индексирована/(26)
Не был выбран индексный файл для базы данных при попытке
использования команды UPDATE с параметром RANDOM.
/Запись базы данных повреждена/(1115)
Числовое поле в текущей записи содержит недопустимые симво-
лы.
/Деление на 0/(1307)
Была предпринята попытка деления на нуль.
/Вложение циклов DO слишком глубоко/(103)
В программе был превышен максимально допустимый уровень
вложения циклов DO, который равен 15.
/Дублирующиеся имена полей/(1156)
В параметре FIELDS введенной команды SORT или COPY присутс-
твуют дублирующиеся имена полей в списке полей. Внесите ис-
правления в программу или в команду и повторите команду.
/Обнаружен конец файла/(4)
Указатель записи размещен далее последней записи в файле
базы данных.
/Endtext без text/(1214)
Для выражения ENDTEXT отсутствует соответствующее выражение
TEXT.
/Ошибка описания поля в ярлыке/(1245)
В файле ярлыков LABEL было обнаружено недопустимое выраже-
ние (.LBL).
/Требуется файл в режиме исключительного использования/(110)
Была сделана попытка использования команд INSERT [BLANK],
MODIFY STRUCTURE, PACK, REINDEX или ZAP с файлом, который
не был открыт в режиме исключительного использования.
Вновь откройте файл при помощи комнанды USE EXCLUSIVE или
установите SET EXCLUSIVE ON и вновь откройте файл.
/Ошибка анализатора выражений/(67)
Эта ошибка свидетельствует о повреждении внутренней струк-
туры анализатора выражений системы FoxBASE+. Это может быть
связано с повреждением файла объектного кода FoxBASE+. Пе-
рекомпилируйте программу, которая приводит к такому сообще-
нию об ошибке.
/Возможность недоступна/(1001)
Возможность FoxBASE+, которую вы хотите использовать, не
поддерживается в используемой вами версии FoxBASE+. Напри-
мер, интерфейс с языком Ассемблера поддерживается в настоя-
щее время только в версии FoxBASE+ для MS-DOS.
/Отказано в доступе к файлу/(1705)
Была сделана попытка записи в файл, который защищен от за-
писи командой DOS ATTRIB.
/Файл уже существует/(7)
Имя файла, которое вы хотите дать файлу при его переимено-
вании, уже используется. Обычно это сообщение об ошибке вы-
дается командами SORT или RENAME.
/Файл не может быть заперт/(1503)
(Только для многопользовательского режима) Была предпринята
попытка выполнения команды (например, PACK, INDEX), которая
подразумевает временное использование базы данных в режиме
исключительного пользования, в то время как база данных,
или какая-либо запись в ее составе, были заперты другим
пользователем. Для проверки того, может ли база данных быть
заперта в текущий момент, может быть использована функция
LOCKNDX(). Если файл может быть заперт, функция LOCKNDX()
запрет его.
/Ошибка закрытия файл/(1112)
Операционная система выдала сообщение об ошибке при попытке
FoxBASE+ закрыть файл.
/Файл не существует/(1)
Файл, который вы попытались вызвать, не существует.
/Файл используется/(3)
Была предпринята попытка использовать команду USE, DELETE
или RENAME с файлом, который был в этот момент открыт.
/Файл используется другим/(108)
Была сделана попытка открыть файл, который был открыт дру-
гим пользователем для использования в режиме исключительно-
го доступа.
/Файл не открыт/(1113)
Была предпринята попытка чтения из файла или записи в файл,
который не был открыт.
/Ошибка чтения файла/(1104)
Операционная система выдала сообщение об ошибке при попытке
FoxBASE+ прочетсь файл.
/Файл не был загружен/(91)
Произошла ошибка при поытке выполнения команд CALL или
RELEASE в отношении модуля, который не был загружен коман-
дой LOAD.
/Ошибка записи файла/(1105)
Операционной системой было выведено сообщение об ошибке при
попытке FoxBASE+ записи в файл. Наиболее часто эта ошибка
явялется результатом записи на дискету с установленной за-
щитой записи.
/Выражение FILTER слишком длинно/(1140)
Была предпринята попытка выполнить команду SET FILTER TO с
выражением, превышающем максимально допустимую длину (160
символлов).
/FILTER требует логического выражения/(37)
Была предпринята попытка выполнить команду SET FILTER для
выражения, которое не является логическим.
/For/while требуют логических выражений/(1127)
Операторы "for" и "while" в составе команды не содержат ло-
гического выражения.
/Несогласованность if/else/endif/(1211)
Для выражений ELSE или ENDIF отсутствует соответствующее
выражение IF.
/Недопустимая операция для поля MEMO/(34)
В команде INDEX не может быть указано поле MEMO в качестве
ключевого выражения.
/Недопустимое смещение при поиске/(1103)
Ошибка вызвана попыткой FoxBASE+ установить указатель запи-
си перед началом файла.
/Недопустимое значение/(1305)
Выражение, указанное в командах SET MEMOWIDTH, SET HISTORY,
DISPLAY HISTORY, BROWSE или @ TO имеет недопустимое значе-
ние.
/Недопустимый тип данных в групповом выражении/(1241)
Командой REPORT в выражении для группы или подгруппы был
обнаружен тип данных логический или мемо.
/Индекс поврежден. Перед работой используйте REINDEX/(114)
В индексном файле была обнаружена поврежденная структура.
/Индексное выражение слишком велико/(112)
Индексное выражение для этого индекса превышает максимально
допустимый размер 100 байт.
/Недопустимая длина ключа/(23)
Индексное выражение для проведеня индексации превышает мак-
симально разрешенную длину для ключевого выражения 150 бай-
тов.
/Индексный файл не соответствует базе данных/(19)
Индексное выражение в текущем индексном файле использует
переменные, которые отстутствуют в активном файле базы дан-
ных.
/Недостаточен объем памяти/(43)
Недостаточен объем памяти для загрузки указанного модуля.
/Ошибка внутренней структуры/(66)
Была повреждена внутренняя таблица FoxBASE+.
/Внутренняя ошибка: В отчете слишком много символов/(1243)
Общий размер всех заголовков и выражений, заданных для от-
чета в команде CREATE/MODIFY REPORT слишком велика и не мо-
жет быть включена в один файл отчетов.
/Недопустимый символ в команде/(1220)
Строка в исходном коде содержит недопустимый символ. Скорее
всего это связано с наличием управляющего символа, введен-
ного в текст программы внешним редактором.
/Недопустимый номер базы данных/(17)
Попытка выбрать базу данных с недопустимым номером вне диа-
пазона от 1 до 10.
/Недопустимый описатель файла/(1111)
В связи с внутренней ошибкой, FoxBASE+ попытался выполнить
чтение или запись с поврежденным описателем файла.
/Недопустимые значение, тип или количество аргументов
функции/(11)
Значение, переданное функции, либо имеет несоответствующий
тип данных, илбо значение аргумента находистя вне допусти-
мого диапазона для этой функции. Это может быть связано
также с передачей функции чрезмерного количества аргумен-
тов.
/Недопустимый номер индекса/(1141)
Была предпринята попытка установить SET INDEX TO в позицию
в списке индексных файлов, которая является пустой или вне
диапазона от 0 до 7.
/Недопустимая длина ключа/(1107)
Было указано индексное ключевое выражение недопустимой дли-
ны. Длина ключа для индекса должна быть в пределах от 0 до
100 байт, включительно.
/Недопустимая переадресация принтера/(124)
Либо не задан маршрут к принтеру, либо устройство печати не
общего пользования.
/Недопустимый индекс/(31)
Был использован индекс, который находится вне допустимого
диапазона индексов массива в операторе DIMENSION. Это может
быть также связано с использованием двух указателей индекса
в одномерном массиве, или с использованием индекса при
ссылке на скалярную переменную.
/Недопустимая ссылка на переменную/(1223)
Была использована функция там, где предполагалась перемен-
ная. Это связано с использованием допустимого имени функции
или аббревиатуры в качестве имени массива.
/Ключевое выражение слишком длинно/(1108)
Была превышена максимально допустимая длина индексного клю-
чевого выражения (150 байт).
/Ключ слишком велик/(1124)
Была превышена максимальная длина индексного ключа (100
байт).
/Тип поля в ярлыке - символический, числовой или даты/(1244)
Командой LABEL в файле ярлыков было обнаружено поле логи-
ческого типа или типа мемо.
/Недопустимый файл ярлыков/(54)
Была предпринята попытка коректировки или распечатки ярлы-
ков с использованием файла ярлыков, который был создан не
командой CREATE/MODIFY LABEL.
/Строка слишком длинна/(18)
Была превышена максимальная длина строки текста (254 бай-
та). Наиболее часто это связано с тем, что макрозамены при-
вели к удлинению строки сверх 254 байт.
/Внутрення ошибка LOG/(58)
Аргумент функции LOG должен быть больше нуля.
/Превышено максимално разрешенное (128) число пунктов меню (607)
Превышено максимально разрешенное число пунктов (128), ко-
торое может располагаться в меню.
/Превышено максимално разрешенное (25) число меню (608)
Превышено максимально разрешенное читсло меню (25).
/Превышен размер (50) пункта меню (609)
Превышено количество символов, находящийся в пункте меню
(50)
/Этот файл не может быть дополнен/(111)
Это файл dBASE II или FoxBASE, он может быть только проч-
тен, но не дополнен.
/Отсутствует файл MEMO/(41)
Была предпринята попытка использовать файл базы данных, для
которого соответствующий файл мемо (.DBT) был удален, стерт
или не может быть найден.
/Файл переменных памяти поврежден/(55)
Была предпринята попытка восстановить переменные памяти из
командой RESTORE FROM из файла, который не является файлом
памяти (.MEM).
/Недопустимая структура case/(1213)
Для выражений CASE, ENDCASE и OTHERWISE отсутствует опера-
тор DO CASE.
/Отсутствует (/(1304)
В имени функции отсутствует левая скобка.
/Отсутствует )/(1300)
В имени функции отсутствует правая скобка. Либо данная
строка содержит левую скобку, для которой отсутствует пра-
вая скобка, либо функция содержит слишком много аргументов
и правая скобка не воспринимается.
/Отсутствует ,/(1306)
FoxBASE+ ожидал запятую, но она не была найдена. Обычно это
происходит при задании недопустимого количества аргументов
для функции.
/Отсутствует выражение/(1227)
Ожидалось допустимое выражение, оно не найдено.
/Отсутствует операнд/(1231)
Был использован оператор, который подразумевает наличие
двух операндов, без второго операнда, например (13+4)/.
/Должен быть ключ символического или числового типа/(1145)
Ключевое поле, используемое в команде UPDATE ON должно быть
символического, числового типа или типа даты.
/Должна быть переменная файла/(1226)
Была использована переменная памяти или переменная массива
вместо ожидаемой переменной файла.
/Должна быть переменная памяти/(1225)
Была использована переменная файла вместо ожидаемой пере-
менной памяти или переменной массива.
/Должно быть описание массива/(1232)
Оператор DIMENSION содержит описание переменной без указа-
ния индексов.
/Не найден оператор PARAMETER/(1238)
При выполнении программы командой DO с оператором PARAMETER
первым оператором вызванной программы должен быть оператор
PARAMETER.
/В области USE отсутствует база данных/(1119)
Отсутствовала активная база данных в момент попытки выпол-
нения команды.
/Не найдены поля для копирования/(47)
При попытке выполнения команд COPY или TOTAL для файла не
было обнаружено доступных полей.
/Нет памяти для буфера/(1149)
Оказалось невозможным зарезервировать область памяти для
буффера. Это сообщение встречается очень редко и только в
ситуациях, когда доступный объем памяти очень ограничен.
Рекомендуем вам расширить память.
/Нет памяти для карты файла/(1150)
Оказалось невозможным зарезервировать область памяти для
внутреннего ресурса. Это сообщение встречается очень редко
и только в ситуациях, когда доступный объем памяти очень
ограничен. Рекомендуем вам расширить память.
/Нет памяти для имени файла/(1151)
Оказалось невозможным зарезервировать область памяти для
внутреннего ресурса. Это сообщение встречается очень редко
и только в ситуациях, когда доступный объем памяти очень
ограничен. Рекомендуем вам расширить память.
/Меню/пункт не определен (612)
Значения, посланные командам READ MENU TO или READ MENU BAR
TO не соответствуют меню или указанным в них пунктам.
/Не символическое выражение/(45)
Была предпринята попытка вызвать модуль командой CALL с вы-
ражением несимволического типа.
/Не файл базы данных/(15)
Файл, который FoxBASE+ пытается использовать в качестве ба-
зы данных, содержит недопустимый заголовок.
/Не числовое выражение/(27)
Была предпринята попытка использовать команду SUM для не-
числового поля.
/Не объектный файл/(1309)
Была предпринята попытка загрузить компилированную програм-
му FoxBASE+, которая имеет недопустимый заголовок. Наиболее
вероятно, что исходная программа имеет расширение FOX или
.FMX, которое зарезервировано для компилированных программ.
/Недостаточен объем памяти для загрузки базы данных/(1600)
Недостаточен объем памяти для открытия дополнительной базы
данных.
/Не приостановлено/(101)
Была использована команда RESUME без использования ранее
команды SUSPEND.
/Несоответствие типа оператора/операнда/(107)
Используется арифметический, логический или логический опе-
ратор или функция с недопустимым типом данных. Эта ошибка
может произойти, например, если вы попытаетесь сложить два
логических значения.
/Вне диска/(56)
Операционная система передала в FoxBASE+ сообщение об ошиб-
ке, указывающее, что на диске недостаточно места для зане-
сения данных в соответствии с последней командой WRITE.
/Ошибка оператора picture в выражении GET/(1217)
Оператор picture в выражении @...SAY...GET содержит симво-
лы, задающие значение, которое не может быть сформатирова-
но. Эта ошибка может произойти в связи с ошибкой в операто-
ре picture или в связи с тем, что форматируемое значение не
соответствует указанному оператору picture.
/Положение вне экрана/(30)
Недопустимое значение номера строки или столбца в команде
@.
/Принтер не готов/(125)
Указанное устройство печати в текущий момент недоступно,
или нарушен временной режим работы принтера. Возможно, сле-
дует увеличить параметр "time" в файле CONFIG.FX.
/Программа слишком велика/(1202)
Программа, которую пытается загрузить FoxBASE+, не помеща-
ется в памяти. В случае, если FoxBASE+ обладает достаточным
объемом памяти, наибольшая программа может содержать не бо-
лее 65,000 байт.
/Запись используется другим/(109)
Была сделана попытка запереть запись, которая заперта дру-
гим пользователем.
/Запись вне индекса/(20)
Ключевое поле базы данных было изменено в момент, когда ин-
дексный файл не был активным. Для исправления этой ошибки
выполните команду REINDEX для файла базы данных.
/Запись не заперта/(130)
Команды REPLACE или @...SAY...GETбыли введены в отношении
записи, которая не была заперта. Заприте запись и повторите
попытку.
/Запись вне диапазона/(5)
Номер записи, которую вы пытаетесь использовать, вне диапа-
зона фактически имеющихся в базе данных записей. Проверьте,
не пользуетесь ли вы ключем активации от демонстрационной
версии. Если это так, снова проинстолируйте FoxBASE+ и пов-
торите свои действия.
/Запись слишком длина/(1126)
При попытке создания файла базы данных была превышена мак-
симальная длина данных в записи (4000 байт). Длина данных в
записи равна сумме длин отдельных полей записи.
/Рекурсивное макроопределение/(1206)
Максимальное количество макрозамен (256 в одном выражении)
было выполнено в текущей строке. Возможной причиной этой
ошибки является ссылка макро самой на себя.
/Выражение отношений слишком длинное (1108)
Компилированыый вариант выражения с отношениями превысил 60
байт.
/Поврежден файл отчетов/(50)
В описании отчета имеется ошибка.
/Необходимый оператор в команде отсутствует/(1221)
Была использована команда без оператора, который подразуме-
вается синтаксисом команды FoxBASE+.
/Ошибка команды RUN/!/(1405)
Операционная система передала FoxBASE+ сообщение об ошибке,
указывающее что не может быть организован вторичный процесс
для выполнения команды RUN. Наиболее часто эта ошибка явля-
ется следствием невозможности найти программу интерпретато-
ра команд, или недостаточным объемом свободной памяти для
загрузки программы интерпретатора команд в память. Удосто-
верьтесь, что органзован доступ к файлу COMMAND.COM с по-
сощью переменной конфигурации COMSPEC.
/Внутренняя ошибка SQRT/(61)
Аргумент функции SQRT не может быть отрицательным.
/Выражение недопустимо в интерактивном режиме/(95)
Команды IF, ELSE, ENDIF, TEXT, ENDTEXT, EXIT, RETRY,
RETURN, SUSPEND, DO WHILE, ENDDO, DO CASE и ENDCASE недо-
пустимы в интерактивном режиме.
/Переполнение области символической переменной памяти/(21)
Общий объем всех символических переменных памяти превысил
размер пула памяти, заданный в файле config.fx/db.
/Строка слишком длинна/(1903)
Была превышена максимальная длина строки функциями
REPLICATE или SPACE.
/Недопустимая структура/(1235)
В команде CREATE FROM была указана база данных, структура
которой не соответствует формату STRUCTURE EXTENDED.
/Слишком велика вложенность в структуре/(1212)
Превышен максимально допустимый уровень вложенности команд
при структурном программировании, равный 64.
/Индекс вне диапазона/(1234)
Была сделана попытка ссылки на элемент массива с индексом,
который находистя вне диапазона, заданного в операторе
DIMENSION.
/Синтаксическая ошибка/(10)
Была введена команда с синтаксической ошибкой. Ошибка может
быть вызвана ошибкой в названии команды или имени перемен-
ной, или использованием оператора, который не имеет смысла
в таком контексте.
/Синтаксическая ошибка в выражении поля/(1242)
Команда REPORT обнаружила ошибку в выражении поля.
/Цель уже использована в связи/(1147)
В указанной ситуации существует несколько связей между ак-
тивным файлом базы данных и одной из целей при связи.
/Слишком мало аргументов/(1229)
Вызов функции содержит аргументов меньше, чем требуется.
/Слишком много аргументов/(1230)
Вызов функции содержит количество аргументов, превышающее
разрешенное для этой функции значение.
/Слишком много открытых файлов/(6)
FoxBASE+ попытался открыть файлов больше, чем позволяет его
внутренняя структура.
/Слишком много индексов/(28)
Максимальное количество индексов (7), которое может быть
открыто одновременно, было превышено.
/Слишком много переменных памяти/(22)
Максимальное количество переменных памяти, которое может
быть создано, было превышено. Увеличьте значение параметра
MVCOUNT в файле config.fx/db.
/Слишком много символов PICTURE/(1310)
Общее количество символов во всех операторах picture для
активных операторов GET превысило предел 2064 символа. Уве-
личьте параметр BUCKET в файле CONFIG.FX.
/Слишком много процедур PROCEDURE/(1250)
FoxBASE+ обнаружил, что максимальное количество процедур в
процедурном файле (128) было превышено при выполнении ко-
манды SET PROCEDURE TO.
/Слишком много связей/(1148)
Слишком много связей (более 15) установлено сежду файлами
базы данных. Уменьшите количество связей между открытыми
файлами базы данных.
/Общая длина ярлыков превышает максимальную величину/(1246)
Команда LABEL обнаружила условие, для которого сумма длин
отдельных ярлыков плюс промежутки между ними превышает мак-
симально допустимую длину.
/Невозможно создать временные рабочие файлы/(1410)
Команда SORT или INDEX, которой необходимы временные рабо-
чие файлы не получила от операционной системы разрешения на
их создание. Это может быть вызвано переполнением каталога
или проблемами доступа в каталог с временными файлами.
/Запереть невозможно/
В командах EDIT или CHANGE был введен символ Ctrl-O для за-
пирания записи, которая заперта другим пользователем.
/Неизвестная функциональная клавиша/(104)
Была предпринята попытка выполнить команду SET FUNCTION для
функциональной клавиши, которая не соответствует по имени
или по номеру ни одной из существующих функциональных кла-
виш.
/Неопознанная команда/(16)
В начале командной строки было использовано слово, которое
не является известной командой FoxBASE+.
/Неопознанная фраза/ключевое слово в команде/(36)
В командой строке была использована конструкция, начинающа-
яся с недопустимого ключевого слова.
/Переменная должна быть в выбранной базе данных/(1134)
Переменная, выбранная для замены в команде REPLACE, отсутс-
твует в активной в текущий момент базе данных.
/Переменная не найдена/(12)
Переменная, указанная в операторе "field" для команд
CHANGE, TOTAL или UPDATE, отсутствует в активной базе дан-
ных.
/Ошибка вложения while/(96)
Для выражения ENDWHILE отсутствует соответствующее выраже-
ние DO WHILE.
/Недопустимая длина ключа/(1117)
Длина ключевого поля не соответствует командам UPDATE или
SET RELATION TO при работе с двумя файлами.
/Неверное количество параметров/(94)
Количество параметров, указанное в выражении DO...WITH не
соответствует количеству параметров, заданному выражением
PARAMETER в вызванной программе.
.
Сообщения об ошибках FoxBASE+ и соответствующие номера
Ниже приведен список ошибок, в котором они расположены по
номерам, а также сообщения, соответствующие каждому номеру.
Номер ошибки Текст сообщения об ошибке
1 Файл не существует
3 Файл используется
4 Запись вне диапазона
5 Запись вне диапазона
6 Слишком много открытых файлов
7 Файл уже существует
9 Несоответствие типа данных
10 Синтаксическая ошибка
11 Недопустимое значение, кол-во или тип арг-тов
12 Переменная не найдена
13 ALIAS не найден
15 Не файл базы данных
16 Неопознанное командное слово
17 Недопустимый номер базы данных
18 Строка слишком длинна
19 Индесный файл не соответствует базе данных
20 Записи нет в индексе
21 Переполнение области памяти переменных
22 Слишком много переменных памяти
23 Индексное выражение слишком велико
24 Имя ALIAS уже используется
26 База не индексирована
27 Не числовое выражение
28 Слишком много индексов
30 Позиция вне экрана
31 Ссылка на недопустимый индекс
34 Недопустимая операция для поля MEMO
36 Неопознанная фраза/ключ.слово в команде
37 FILTER требует логического выражения
38 Обнаружено начало файла
39 Числовое переполнение (данные потеряны)
41 Отсутствует файл MEMO
42 CONTINUE без LOCATE
43 Недостаточно памяти
44 Циклическая связь
45 Не символическое выражение
47 Не найдены поля для копирования
50 Поврежден файл отчетов
54 Поврежден файл ярлыков
55 Поврежден файл переменных памяти
56 Вне диска
58 Внутренняя ошибка LOG
61 Внутренняя ошибка SQRT
62 Вне строки
66 Ошибка внутренней структуры
67 Ошибка анализатора выражений
78 Внутренняя ошибка ** или ^
91 Файл не был загружен
94 Ошибочное количество параметров
95 Выражение недопустимо в интерактивном режиме
96 Ошибка вложения while
101 Не приостановлено
103 Вложение do слишком велико
104 Неизвестная функциональная клавиша
107 Несоответствие типов операнд/оператор
108 Файл используется другим
109 Запись используется другим
110 Требуется ислючительно открытый файл
111 Запись в файл только для чтения невозможна
112 Индексное выражение слишком велико
114 Индекс поврежден
124 Недопустимое переназначение принтера
125 Принтер не готов
130 Запись не заперта
138 Не найдены поля для копирования
607 Превышено максимално разрешенное
число пунктов меню
608 Превышено максимално разрешенное
число меню
609 Превышен размер пункта меню
611 Меню пункты/заголовки должно иметь
тип CHARACTER
612 Такой мень/пункт не определен
1001 Возможность не поддерживается
1101 Невозможно открыть файл
1102 Невозможно создать файл
1103 Недопустимое смещение при поиске
1104 Ошибка чтения файла
1105 Ошибка записи в файл
1108 Ключевое выражение слишком длинное
1111 Недопустимый описатель файла
1112 Ошибка закрытия файла
1113 Файл не открыт
1115 Запись базы данных повреждена
1117 Ошибочная длина ключа
1119 В области USE нет базы данных
1124 Ключ слишком велик
1126 Запись слишком длинная
1127 В for/while необходимо логическое выражение
1134 Переменная должна быть в выбранной базе
1140 Выражение FILTER слишком велико
1141 Недопустимый номер индекса
1145 Должно быть числовое или символическое поле
1147 Цель уже состоит в связи
1148 Слишком много связей
1149 Нет памяти для буфера
1150 Нет памяти для карты файла
1151 Нет памяти для имени файла
1152 Невозможно достичь выбранную базу
1153 Попытка переместить файл на дургое устройство
1156 Дублирующиеся имена файлов
1157 Невозможно откорректировать файл
1201 Попытка использовать более 2048 имен
1202 Программа слишком велика
1206 Рекурсивное макроопределение
1211 Несоответствие if/else/endif
1212 Структура со слишком глубоким вложением
1213 Несоответствующая структура case
1214 Endtext буз text
1217 Ошибка picture в операторе GET
1220 Недопустимый символ в команде
1221 Необходимый оператор отсутствует в команде
1223 Недопустимая ссылка на переменную
1225 Должна быть переменная памяти
1226 Должна быть переменная файла
1227 Отсутствует выражение
1229 Слишком мало аргументов
1230 Слишком много аргументов
1231 Отсутствует операнд
1232 Должно быть описание массива
1234 Индекс вне диапазона
1235 Ошибочная структура
1238 Не найден оператор PARAMETER
1241 Недопустимый тип данных в групповом выражении
1242 Синтаксическая ошибка в выражении поля
1243 Внутренняя ошибка: Много символов в отчете
1244 Тип поля ярлыка м.б. символ., числовым и даты
1245 Ошибка в описании поля ярлыка
1246 Общая длина ярлыка превышает допустимую
1249 Команда READ активна
1250 Слишком много процедур
1252 Компилированный код строки слишком длинный
1300 Отсутствует )
1304 Отсутствует (
1305 Недопустимое значение
1306 Отсутствует ,
1307 Деление на 0
1309 Не объектный файл
1310 Указано слишком много символов PICTURE
1405 Ошибка команда RUN/!
1410 Невозможно создать временные рабочие файлы
1503 Файл не может быть заперт
1600 Недостаточнго памяти для открытия базы данных
1705 Отказано в доступе к файлу
1903 Строка слишком длинная
1907 Ошибочный указатель дисковода
1908 Ошибочный аргумент длины или дробной части
1999 Функция не реализована
.
Приложение A. О файле VIDEO.DBF
_______________________________________________________________
A.1 Структура VIDEO.DBF
_______________________________________________________________
Структура базы данных : C:DB3VIDEO.DBF
Количество записей : 35
Дата последней кооректировки: 07/08/86
Поле Имя поля Тип Ширина Дробная часть
1 TITLE Character 30
2 DESCRIPT Memo 10
3 RATING Character 4
4 TYPE Character 10
5 DATE_ARRIV Date 8
6 AVAILABLE Logical 1
7 COST_RENT Numeric 6 2
8 COST_BUY Numeric 6 2
9 TIMES_RENT Numeric 5
10 NUM_SOLD Numeric 5
11 FORMAT Character 3
12 LENGTH Numeric 3
** Total ** 92
Содержание файла VIDEO.DBF
# TITLE RATING TYPE
1 AMADEUS PG Drama
2 NORMA RAE PG Drama
3 KRAMER VS.KRAMER PG Drama
4 PLACES IN THE HEART PG Drama
5 THE WAY WE WERE PG Drama
6 ORDINARY PEOPLE R Drama
7 THE SONS OF KATIE ELDER G Western
8 A FISTFUL OF DOLLARS PG Western
9 BARBAROSA PG Western
10 ARSENIC AND OLD LACE N/R Classic
11 THE MALTESE FALCON N/R Classic
12 CASABLANCA N/R Classic
13 TOPPER N/R Classic
14 SUNSET BOULEVARD N/R Classic
15 MURDER BY DEATH PG Suspense
16 REBECCA PG Suspense
17 FRIDAY THE 13TH R Suspense
18 EYEWITNESS R Suspense
19 THE FOG R Suspense
20 NIGHT OF THE LIVING DEAD N/R Suspense
21 A NIGHTMARE ON ELM STREET R Suspense
22 TOOTSIE PG Comedy
23 48 HRS. R Comedy
24 BEVERLY HILLS COP R Comedy
25 THE FLAMINGO KID PG Comedy
26 GHOSTBUSTERS PG Comedy
27 FUNNY GIRL G Musical
28 GUYS AND DOLLS N/R Musical
29 CABARET PG Musical
30 SOUTH PACIFIC N/R Musical
31 GREASE PG Musical
32 CHINESE CONNECTIONS R Action
33 A VIEW TO KILL PG Action
34 20,000 LEAGUES UNDER THE SEA G Action
35 BLADE RUNNER R Action
Record# AVAILABLE COST_RENT COST_BUY TIMES_RENT
1 .T. 2.00 59.95 244
2 .T. 1.39 39.95 132
3 .F. 2.99 39.95 559
4 .T. 1.99 39.95 149
5 .T. 1.99 29.95 405
6 .T. 2.99 39.95 708
7 .T. 0.99 24.95 309
8 .F. 2.99 29.95 899
9 .T. 0.99 29.95 20
10 .F. 2.99 29.95 1000
11 .F. 1.99 29.95 945
12 .T. 1.99 29.95 1782
13 .T. 1.89 29.95 578
14 .T. 2.59 29.95 438
15 .F. 1.99 29.95 2887
16 .T. 2.69 29.95 4738
17 .F. 2.99 29.95 9897
18 .T. 1.89 29.95 6673
19 .F. 2.99 29.95 4478
20 .F. 2.99 29.95 4783
21 .F. 2.99 29.95 6894
22 .T. 2.99 29.95 5784
23 .F. 1.99 29.95 4783
24 .F. 2.99 29.95 8478
25 .T. 1.49 29.95 678
26 .F. 2.99 59.95 10934
27 .T. 1.99 24.95 834
28 .T. 2.99 39.95 783
29 .T. 1.99 29.95 470
30 .F. 1.99 29.95 342
31 .T. 2.99 29.95 3459
32 .T. 2.99 29.95 3482
33 .F. 2.99 29.95 8932
34 .T. 1.99 29.95 3979
35 .F. 2.99 39.95 3412
Record# TIMES_BUY FORMAT LENGTH
1 125 VB 160
2 57 VB 114
3 312 VB 104
4 103 BV 113
5 309 VB 118
6 305 VB 124
7 210 VB 122
8 514 8 96
9 99 VB 90
10 510 VB 118
11 210 8 102
12 512 VB 102
13 157 VB 97
14 123 VB 110
15 504 VB 94
16 347 8 131
17 2343 VB 93
18 343 8 95
19 2348 VB 94
20 483 VB 95
21 3094 VB 92
22 3478 VB 116
23 989 VB 97
24 2348 VB 105
25 202 VB 98
26 8384 VB 105
27 123 8 148
28 87 8 150
29 231 VB 119
30 123 VB 150
31 2345 VB 110
32 1238 VB 107
33 4234 VB 131
34 342 8 126
35 1343 VB 119
Приложение В. Коды клавиш для команды "ON KEY="
Приведенная ниже таблица представляет числовые значения,
используемые для обозначения клавиши, которая должна быть отсле-
жена командой "ON KEY=".
Код клавиши Соответствующая клавиша(и)
272-281 Alt Q, W, E, R, T, Y, U, I, O, P
286-294 Alt A, S, D, F, G, H, J, K, L
300-306 Alt Z, X, C, V, B, N, M
315-324 Функциональные клавиши с F1 по F10
327 Home
328 Стрелка вверх
329 PgUp
331 <-
333 ->
335 End
336 Стрелка вниз
337 PgDn
338 Ins
339 Del
340-349 Shift F1 по Shift F10
350-359 Ctrl F1 по Ctrl F10
360-369 Alt F1 по Alt F10
370 Ctrl Print-Scrn
371 Ctrl <-
372 Ctrl ->
373 Ctrl End
374 Ctrl PgDn
375 Ctrl Home
376-387 Alt 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =,
388 Ctrl PgUp
|
|