ЭЛЕКТРОННАЯ БИБЛИОТЕКА КОАПП
Сборники Художественной, Технической, Справочной, Английской, Нормативной, Исторической, и др. литературы.



 

Часть 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

обслуживание postgresql
Яндекс цитирования