ГЛАВА 4. УТИЛИТЫ
NetWare Btrieve обеспечивает Вас полным набором утилит, помогающим Вам при создании и поддержке файлов, тестировании и отладке. Вдобавок, NetWare Btrieve включает некоторые утилиты командных строк, которые позволяют Вам управлять функционированием NetWare Btrieve в Вашей сети. Три утилиты NetWare Btrieve: - BUTIL.EXE - программа, содержащая команды позволяющие Вам создавть и управлять файлами данных Btrieve; - B.EXE (Исполнитель Btrieve-функций) - интерактивная утилита, которую Вы можете использовать для обучения, тестирования и отладки логики Вашой прикладной программы. - Утилиты Командных Строк - утилиты, позволяющие Вам управлять функционированием NetWare Btrieve в Вашей сети.
ПРОГРАММА BUTIL
Программа BUTIL содержит полный набор команд для применения при создании, поддержке и восстановлении файлов. Следующие разделы описывают, как запускать BUTIL, контролировать сообщения об ошибках BUTIL, создавать BUTIL-описания файлов и файлы альтернативной последовательности поиска. Команды BUTIL представлены в алфавитном порядке под заголовком "Команды BUTIL"ЗАПУСК BUTIL
Для запуска BUTIL выполните следующие шаги: 1) Стартуйте программу BREQUEST до запуска BUTIL. Если Вам нужна помощь в этой процедуре, см. "Программа BREQUEST" в Главе 3. 2) Введите команду BUTIL в следующем формате: <Устройство>:BUTIL-COMMAND[Параметры][-O<Владелец>] Замените <Устройство> именем накопителя или другого устройства, содержащего програмные файлы Btrieve. вы можете опустить устройство, если Вы намерены использовать диск, заданный по умолчанию. Замените _COMMAND именем Btrieve-команды (COPY, LOAD и т.д.), которую Вы хотите использовать. Вы должны поставить перед командой черточку (-). Замените <Параметры> информацией, необходимой BUTIL для выполнения выбранной Вами команды. Команды описаны под заголовком соответствующей команды. Замените <Владелец> или именем владельца Btrieve-файла, к которому будет иметь доступ команда, или звездочкой (*). Если Вы используете звездочку вместо имени владельца, BUTIL подскажет Вам имя владельца файла. BUTIL требует параметр -O<Владелец>, если какой-либо из Btrieve-файлов, заданных в команде, требует имя владельца. BUTIL отбрасывает ведущие пробелы, тем не менее звездочка (*) - первый непробельный символ параметра -O. Если Вы задаете два Btrieve-файла в команде, Вы должны задать параметр -O дважды, по разу для каждого файла. Если только второй файл имеет имя владельца, BUTIL игнорирует первое имя владельца. вы можете применять опцию "звездочка" дважды. Если Вы введете команду BUTIL без параметров, BUTIL покажет правильный формат команды для всех команд. Вы можете переназначить этот выход в файл или на принтер с помощью переназначения DOS.СООБЩЕНИЯ ОБ ОШИБКАХ BUTIL
BUTIL возвращает сообщения об ошибках двумя способами, в зависимости от того, запускаете ли Вы ее из командной строки или из командного файла. Если какие-либо ошибки появляются во время запуска BUTIL из командной строки, на экране появится сообщение, описывающее проблему. См. Приложение B для информации о сообщениях об ошибках BUTIL и Btrieve. Если какие-либо ошибки появляются во время запуска BUTIL из командного файла, BUTIL вернется на уровень ошибки DOS. Следующая таблица перечисляет и описывает уровни ошибок BUTIL. Уровень ошибки Описание 0 Запуск утилиты завершен без ошибок. 1 Запуск утилиты завершен, но появляются нефатальные ошибки, такой как код статуса 5 (Дубликат значения ключа). 2 Запуск утилиты не завершен из-за появления фатальной ошибки, такой как код статуса 2 (ошибка ввода/вывода). Вы можете проверить уровень ошибки DOS, включая в командном файле после команды BUTIl условие подобное следующему: IF ERRORLEVEL n ECHO сообщение Замените n номером уровня ошибки BUTIL. Замените "сообщение" значением сообщения. Из-за способа, как DOs тестирует уровни ошибок в командах командного файла, Вы всегда должны тестировать уровень ошибки 2 первым. Пример части командного файла, приведенный ниже, иллюстрирует один из способов анализа уровней ошибки BUTIL. . . . BUTIL-LOAD LOADFILE BTRFILE_OOWNERNAME IF ERRORLEVEL 2 ECHO Фатальная ошибка:BUTIL операция не закончена IF ERRORLEVEL 1 ECHO Не фатальная ошибка:Проверте на дубликаты в загружаемом файле. IF ERRORLEVEL 0 ECHO Операция закончена успешно. . . . См. обсуждение командных файлов в руководстве по операционной системе для дополнительной информации о том, как использовать условие ERRORLEVEL.ОПИСАНИЕ ФАЙЛОВ BUTIL
Некоторые из BUTIL-команд, включая CREATE, SAVE и SINDEX, используют ОПИСАНИЕ ФАЙЛА. Описание файла - это последовательный ASCII файл, содержащий некоторую информацию, необходимую Btrieve для выполнения этих операций. Следующий раздел описывает элементы, используемые в описаниях файлов BUTIL. Раздел, содержащий набор правил, которыми Вы должны руководствоваться при создании описания файла, следует за описанием элементов. О п и с а н и е э л е м е н т о в ф а й л а Описание файлов состоит из списка ЭЛЕМЕНТОВ. элемент состоит из ключевого слова, за которым следует знак равенства (=), а затем следует значение. Каждый элемент в описании файла соответствует какой-либо характеристике Btrieve-файла или определению ключа. Полное описание Btrieve-файла и характеристик ключей см. в Главе 2 "Управление Btrieve-файлами". Ниже содержится объяснение описаний элементов файла. Описания некоторых элементов файла помечены "необязательное" и могут быть опущены при описании файла, если они не требуются для файла или определения ключа. Элементы представлены в том порядке, в котором они должны появляться в описании файла. Под заголовком каждого элемента Вы найдете следующие подзаголовки. - Э л е м е н т - представляет правильный формат ключевого слова элемента. Значение представлено как переменная. Переменные, представляющие числовые значения, показаны символами nnnn. Другие значения объясняются в тексте, сопровождающем описание каждого элемента. - Г р а н и ц а - определяет границы допустимых значений, которые Вы можете задать для элемента. - К о м а н д ы - список команд BUTIL, которым требуется этот элемент в описании файлов. За подзаголовками следует краткое описание элемента и как его применять. ---------------------------------------------------------- ПРИМЕЧАНИЕ: Значения в описаниях элементов заключены в скобки. Не заключайте в скобки значения в Вашем описании файла. ----------------------------------------------------------
Record Length (Длина записи) Э л е м е н т : record=<nnnn> Г р а н и ц а : 4-4090 К о м а н д ы : CREATE Элемент "Record Length" определяет длину логической записи данных в файле. Для записей фиксированной длины это значение должно соответствовать длине параметра буфера данных, что выполняет операции над файлом. Если Вы используете записи переменной длины, задаваемая Вами длина записи должна соответствовать длине фиксированной части записи. Минимальная длина записи данных должна быть достаточно большой, чтобы содержать все определенные для файла ключи, но не меньше четырех байт. Длина записи плюс заголовки ее ключей плюс шесть байтов не должны превышать размер страницы файла.
Variable Length Records (Записи переменной длины) Э л е м е н т : variable=<y | n> Г р а н и ц а : нет К о м а н д ы : CREATE Элемент "Variable Length Records" задает, хотите ли Вы чтобы файл содержал записи переменной длины. Задайте "y", если Вы хотите, чтобы создаваемый Вами файл содержал записи переменной длины. Иначе, задайте "n".
Blank Truncation (Отсечение пробелов) Э л е м е н т : truncation=<y | n> Г р а н и ц а : нет К о м а н д ы : CREATE Элемент "Blank Truncation" задает, хотите ли Вы, чтобы Btrieve выполнял отсечение пробелов у записей переменной длины. Ключевое слово truncation требуется только6 если Вы задаете "y" для записи переменной длины. Задайте "y", если Вы хотите, чтобы Btrieve использовал отсечение пробелов. Иначе, задайте "n".
Data Compression (Сжатие данных) Э л е м е н т : compress=<y | n> Г р а н и ц а : нет К о м а н д ы : CREATE Элемент "Data Compression" задает, хотите ли Вы, чтобы Btrieve выполнял сжатие данных над записями, добавляемыми в файл. Задайте "y", если Вы хотите, чтобы Btrieve выполнял сжатие данных. Иначе, задайте "n".
Key Count (счетчик ключа) Э л е м е н т : key=<nn> Г р а н и ц а : 1-24 К о м а н д ы : CREATE Элемент "Key Count" задает число ключей, определенных для файла. Если Вы зададите значение 0 для этого элемента, Btrieve создаст файл, состоящий только из данных. Иначе, Btrieve создаст или стандартный Btrieve-файл или файл, состоящий только из ключей, в зависимости от значения, заданного для элемента "Include Data". Для значений больших 0 Вы должны определить по крайней мере 1 ключ, но не более 8, если размер страницы равен 512 байтам. Если размер страницы - 102 байта или больше, Вы можете определить до 24 ключей.
Page Size (Размер страницы) Э л е м е н т : page=<nnnn> Г р а н и ц а : 512-4096 К о м а н д ы : CREATE Элемент "Page Size" задает физический размер страницы файла в байтах. Вы можете задавать любое число, кратное 512, до 4096.
Page pre-allocation (Перераспределение страницы) Э л е м е н т : allocation=<nnnnn> Г р а н и ц а : 1-64K К о м а н д ы : CREATE Элемент "Page pre-allocation" задает количество страниц, которое вы хотите перераспределить в файле. Если Вы не хотите перераспределять какие-либо страницы, не включайте это ключевое слово в Ваше описание файла.
Replace Existing File (необязательный) (Замена существующего файла) Э л е м е н т : replace=<y | n> Г р а н и ц а : нет К о м а н д ы : CREATE Элемент "Replace Existing File" показывает, что Вы не хотите, чтобы Btrieve создавал новый файл, если файл с таким же именем уже существует, и предупредил Вас о существовании файла. Задайте "n", если Вы не хотите создавать новый файл вместо существующего файла. Если Вы хотите заменить существующий Btrieve-файл на новый пустой файл с тем же самым именем, или задайте "y", или не включайте этот элемент в описание файла.
Include Data (необязательный) (Включение данных) Э л е м е н т : data=<y | n> Г р а н и ц а : нет К о м а н д ы : CREATE Элемент "Include Data" задает, хотите ли Вы, чтобы Btrieve создал файл, состоящий только из ключей. Задайте "n", если Вы хотите, чтобы Btrieve создал файл, состоящий только из ключей. Для создания стандартного файла или задайте "y" для элемента "Include Data", или опустите этот элемент в описании файла. Для создания файла, состоящего только из данных, задайте "y" для элемента "Include Data" и установите элемент "Key Count" в 0
Free Space Threshold (Граница свободного пространства) Э л е м е н т : fthreshold=<10 | 20 | 30> Г р а н и ц а : 10%, 20% или 30% от размера страницы К о м а н д ы : CREATE Элемент "Free Space Threshold" задает величину свободного пространства, которую Вы хотите, чтобы Btrieve зарезервировал на странице файла для расширения для записей переменной длины. Заданное Вами значение выражено в процентах от размера страницы. Не включайте элемент "Free Space Threshold" в описание файла, если файл не допускает записи переменной длины. Если вы задаете "variable=y" и не задаете границу свободного пространства, Btrieve будет использовать значение 5% от размера страницы, заданное по умолчанию.
ПРИМЕЧАНИЕ:
Следующие элементы определяют информацию о ключах файла. вы должны вводить информацию о ключах, начиная с позиции ключа, для каждого сегмента ключа, что Вы хотите определить. -----------------------------------------------------------
Key Position (Позиция ключа) Э л е м е н т : position=<nnn> Г р а н и ц а : 1-<длина записи> К о м а н д ы : CREATE, INDEX, SINDEX Элемент "Key Position" показывает позицию сегмента ключа в записи. Позиция ключа должна быть по крайней мере равна 1 и не может быть больше значения, заданного Вами для длины запсии. определяемые Вами ключи могут перекрываться.
Key Length (Длина ключа) Э л е м е н т : length=<nnn> Г р а н и ц а : 1-<ограничение для типа ключа> К о м а н д ы : CREATE, INDEX, SINDEX Элемент "Key Lehgth" определяет длину поля ключа или ключевого сегмента. Сумма длины ключа и начальной позиции не должна превышать заданную длину записи файла. длина ключа должна быть показывает позицию сегмента ключа в записи. Позиция ключа должна быть по крайней мере равна 1 и не может быть больше значения, заданного Вами для длины запсии. Определяемые Вами ключи могут перекрываться.
Duplicate Key Values (Дубликаты значений ключа) Э л е м е н т : duplicates=<y | n> Г р а н и ц а : нет К о м а н д ы : CREATE, INDEX, SINDEX Элемент "Duplicate Key Values" задает, хотите ли Вы допустить, чтобы более чем одна запись в файле содержала одно и то же значение поля ключа.
Задайте "y", если Вы хотите допустить дубликаты значений ключа. Иначе, задайте "n".
Modifiable Key Values (Модифицируемые значения ключа) Э л е м е н т : modifiable=<y | n> Г р а н и ц а : нет К о м а н д ы : CREATE, INDEX, SINDEX Элемент "Modifiable Key Values" задает, хотите ли Вы позволить прикладной программе модифицировать значение ключа во время операции Update. Задайте "y", если Вы хотите, чтобы значения этого ключа были модифицируемыми. Иначе, задайте "n".
Key Type (Тип ключа) Э л е м е н т : type=<значение типа ключа> Г р а н и ц а : Любой из типов Btrieve-ключа К о м а н д ы : CREATE, INDEX, SINDEX Элемент "Key Type" задает тип данных для ключа. Вы можете задать все слово (такое как "float") или только первые две буквы слова ("fl" для типа float). См. Приложение G для дополнительной информации о типах ключа.
Descending Sort Order (необязательный) Убывающий порядок сортировки Э л е м е н т : descending=y Г р а н и ц а : нет К о м а н д ы : CREATE, INDEX, SINDEX Элемент "Descending Sort Order" задает, хотите ли Вы, чтобы Btrieve сортировал индекс в убывающем порядке. Включите элемент "Descending Sort Order" и задайте "y", если Вы хотите, чтобы Btrieve сортировал значения ключа в убывающем порядке. Если Вы не включите этот элемент, Btrieve отсортирует значения ключа в возрастающем порядке.
Alternate Collating Sequence (Альтернативная последовательность поиска) Э л е м е н т : alternate=<y | n> Г р а н и ц а : нет К о м а н д ы : CREATE, INDEX, SINDEX Элемент "Alternate Collating Sequence" задает, хотите ли Вы, чтобы сортировка данных осуществлялась в последовательности, отличающейся от стандартной ASCII последовательности. Это полезно, если вы хотите применять алфавит, отличный от английского, или если вы хотите просматривать символы нижнего регистра как символы верхнего регистра. Вы можете задать альтернативную последовательность поиска только для ключей типа string, lstring или zstring (строка, l-строка или z-строка). Если Вы хотите, чтобы Btrieve сортировал индекс с помощью альтернативной последовательности поиска, введите "y" в это поле. Иначе, задайте "n".
Manual Key (необязательный) (Ручной ключ) Э л е м е н т : manual=<y | n> Г р а н и ц а : нет К о м а н д ы : CREATE, INDEX, SINDEX Элемент "Manual Key" задает, что определяемый Вами ключ или сегмент ключа - ручной. Если вы определите сегмент ключа как ручной, Вы должны задать пустое значение для этого сегмента. Если ключ - сегментированный ключ и Вы определяете один сегмент как ручной, Вы должны определить все сегменты как ручные.
Null Key (Пустой ключ) Э л е м е н т : null=<y | n> Г р а н и ц а : нет К о м а н д ы : CREATE, INDEX, SINDEX Элемент "Null Key" задает, должен ли определяемый Вами ключ иметь пустое значение. Если Вы определяете пустое значение для одного сегмента сегментированного ключа, Вы должны определить пустое значение для всех сегментов этого сегментированного ключа. Пустые значения, определяемые Вами для каждого сегмента, могут быть разными. вы можете включить элемент "Null Key" в файл-описание для команды INDEX. Однако, INDEX не рассматривает какое-либо заданное Вами пустое значение. BUTIL допускает его для поддержки постоянных форматов для файлов-описаний CREATE, INDEX и SINDEX. Задайте "y", если Вы хотите определить пустое значение для этого ключа. Иначе, задайте "n".
Null Key Value (Пустое значение ключа) Э л е м е н т : value=<nnn> Г р а н и ц а : любое 1-байтовое шестнадцатиричное значение К о м а н д ы : CREATE, INDEX, SINDEX Элемент "Null Key value" задает в шестнадцатиричном виде значение, которое Вы хотите, чтобы Btrieve распознавал как пустой символ для ключа. Типичные пустые значения - 20 как пробел и 0 как двоичный ноль. Включайте этот элемент только, если Вы определяете ключ как допускающий пустые значения. Если Вы задаете "n" для элемента " Null Key", не включайте элемент "Null Key Value" в файл-описание.
Segmented Key (Сегментированный ключ) Э л е м е н т : segment=<y | n>
Г р а н и ц а : нет
К о м а н д ы : CREATE, INDEX, SINDEX
Элемент "Segmented Key" задает, имеет ли определяемый Вами ключ еще какие-либо сегменты. Задайте "y", если ключ имеет другой сегмент. Задайте "n", если Вы определяете несегментированный ключ или последний сегмент сегментированного ключа.
Alternate Collating Sequence Filename (Имя файла альтернативной последовательности поиска) Э л е м е н т : name=<имя файла> Г р а н и ц а : имя файла К о м а н д ы : CREATE, INDEX, SINDEX Элемент "Alternate Collating Sequence Filename" задает имя файла, содержащего альтернативную последовательнось для создоваемого Вами файла7 вы можете включать любое число уровней директорий в имени файла. Если вы задаете элемент "Alternate Collating Sequence Filename", не включайте это ключевое слово в Ваш файл-описание.
П р а в и л а д л я ф а й л о в - о п и с а н и й
Следующие правила применяются к файлам-описаниям BUTIL. Если BUTIL возвращает ошибку при попытке получить доступ к файлу- описанию, произведите проверку в следующих областях. - Все элементы такие, как "type=fl", должны быть написаны символами нижнего регистра. - Все элементы должны быть написаны правильно и отделены от предыдущих элементов "белым пробелом" (т.е. пробелом, символом табуляции, CR/LF и т,д,) - Элементы должны быть представлены в файле-описателе в том порядке, в каком они представлены в предыдущем разделе. - Ответы должны соответствовать друг другу. Например, если Вы задаете "null=y' для элемента "Null Key", должен появиться и элемент "Null Key Value" и его значение; иначе их не должно быть. Если Вы задаете "alternate=y" для элемента "Alternate Collating Sequence" в одном или более сегментов ключа, элемент "Alternate Collating Sequence Filename" и полное или относительное имя пути файла альтернативной последовательности поиска должны быть представлены как последний элемент файла-описания. - Удостоверьтесь, что существует достаточное количество описаний ключей для формирования числа ключей, заданных в элементе "Key Count". Вводите информацию о ключе, начиная с позиции ключа, для каждого сегмента ключа в файле. - Удостоверьтесь, что файл-описание не содержит символов форматирования текста. (Некоторые текстовые процессоры помещают символы форматирования в текстовый файл. Файл- описание не долженсодержать никакие символы форматирования). - BUTIL не проверяет на конец файл-описание. Если Вы не задали альтернативную последовательность поиска, возможно включить слишком много описаний ключей и не получить сообщения об ошибке. Вы можете включать коментарии в конце файла-описания после всех описаний ключей и элемента "Alternate Collating Sequence Filename". - Оббратите внимание, что файлы-описания для CREATE, INDEX и SINDEX имеют слегка различные форматы.
ФАЙЛЫ АЛЬТЕРНАТИВНОЙ
ПОСЛЕДОВАТЕЛЬНОСТИ ПОИСКА
Первые 265 байт файла альтернативной последовательности поиска содержат определение последовательности поиска, отличной от стандартной ASCII последовательности. Если Вы хотите создать файл альтернативной последовательности поиска, Вы должны написать прикладну программу, генерирующую файл в заданном ниже формате. Смещение Длина Описание 0 1 Байт знака. Этот байт должен всегда содержать шестнадцатиричное значение AC. 1 8 8-байтовое имя, которое однозначно идентифицирует альтернативную последовательность поиска для Btrieve. 9 256 256-байтовая таблица, содержащая значение сортировки для каждого символа. Храните значение для каждого символа сортировки со смещением, соответствующим представлению символа в ASCII последовательности поиска. Например, для сортировки символа A как чего-то другого чем 0x41, храните новое значение сортировки со смещением 0x41 в этой таблице. Например, если вы хотите вставить символ с шестнадцатиричным значением 5D между буквами U (шестнадцатиричное 55) и V (шестнадцатиричное 56) в Вашей последовательности, байт 5D в этой последовательности будет содержать значение 56, а байты 56-5C в этой последовательности будет содержать значения 57-5D. Файл UPPER.ALT, который Вы найдете на Вашей програмной дискете, содержит пример альтернативной последовательности поиска. Эта частная последовательность сравнивает символы верхнего и нижнего регистра так, как будто они бы были все в верхнем регистре. Если Вы имеете множество файлов с различными альтернативными последовательностями поиска, все последовательности должны иметь различные имена.
КОМАНДЫ BUTIL
Следующие разделы описывают, как применять команды BUTIL:
Команда Функция
CLONE Создает пустой Btrieve-файл с теми же самыми спецификациями, что и у существующего файла. COPY Копирует содержимое одного Btrieve-файла в другой Btrieve-файл CREATE Создает Btrieve-файл DROP Отбрасывает дополнительный индекс EXTEND Создает разделенный файл INDEX Создает внешний индексный файл LOAD Загружает содержимое стандартного последовательного файла в Btrieve-файл RECOVER Восстанавливает данные поврежденого Btrieve-файла RESET Закрывает файлы данных и освобождает ресурсы SAVE Сохраняет содержимое Btrieve-файла в стандартном последовательном файле SINDEX Создает дополнительный индекс STAT Показывает статистику по атрибутам и текущим размерам файла STOP Завершает BREQUEST и локальный Record Manager (если он заружен) и удаляет их из памяти VER Показывает версию Btrieve и номера пересмотра
CLONE
Ф о р м а т к о м а н д ы
BUTIL-CLONE <Существующий файл><Новый файл>[-O <Владелец>]
О п и с а н и е
Команда CLONE создает новый пустой Btrieve-файл с теми же сам спецификациями файла, включая дополнительные индексы,что и у существующего файла. Вы можете применять CLONE, когда Вы хотите заменить существующий файл, но не хотите разрушать информацию, содержащуюся в существующем файле, как это происходит при применении Вами операции CREATE. Вдобавок, CLONE не требует файла-описания для создания нового файла. К а к п р и м е н я т ь CLONE Для запуска CLONE введите команду в показанном выше формате. Вместо <Существующий файл> введите имя Btrieve-файла, который Вы хотите получить. Вы можете задать полное имя пути, если требуется. Вместо <Новый файл> введите имя, которое Вы хотите использовать для нового пустого Btrieve-файла. Вы можете задать полное имя пути, если требуется. Вместо <Владелец> введите имя владельца существующего файла, если оно требуется. Новый файл будет с именем владельца существующего файла. П р и м е р Следующая команда получает файл NEWINV08-14-92T из файла INVOICE08-14-92T Имя владельца файла INVOICE08-14-92T - "Sandy" BUTIL-CLONE INVOICE08-14-92T NEWINV08-14-92T -O Sandy
COPY
Ф о р м а т к о м а н д ы
BUTIL-COPY <Входной файл><Выходной файл>[-O <Владелец1> [-O<Владелец2>]] О п и с а н и е Команда COPY копирует содержимое одного Btrieve-файла в другой. Наиболее общее применение COPY - изменение характеристик ключей (таких как позиция ключа, длина ключа или значения ключей- дубликатов) Btrieve-файла. COPY берет каждую запись из входного файла и вставляет ее в выходной файл, используя операции Btrieve Get и Insert. COPY выполняет за один шаг ту же самую функцию, что и SAVE и следуемая за ней LOAD. К а к п р и м е н я т ь COPY Для запуска COPY введите команду в показанном выше формате. Замените <Входной файл> на имя Btrieve-файла, из которого Вы пересылаете записи. Вы можете задать полное имя пути, если требуется. Замените <Выходной файл> на имя Btrieve-файла, в который Вы хотите вставить записи. Файл может быть как пустой, так и нет. Вы можете задать полное имя пути, если требуется. Замените <Владелец1> и <Владелец2> именами владельцев Btrieve- файлов, если требуется. Если <Входной файл> требует имя владельца Вы можете задать имя для <Владелец1> или использовать опцию "звездочка", описанную в начале этой главы. Если <Выходной файл> требует имя владельца, испоьзуйте обе опции <Владелец1> и <Владелец2>. Если выходной файл не требует имя владельца, Вы можете оставить пробел вместо <Владелец1>. Используйте <Владелец2> для задания имени владельца для <Выходной файл>. После того6 как записи были скопированы из входного файла в выходной файл, COPY отобразит на экране суммарное число скопированных записей. П р и м е р Следующая команда копирует записи из файла CUSTOMER08-14-92T в файл ACCTRECV08-14-92T . Файл CUSTOMER08-14-92T не требует имя владельца. Файл ACCTRECV08-14-92T имеет имя владельца "Pam". BUTIL-COPY CUSTOMER08-14-92T ACCTRECV08-14-92T -O -O Pam
CREATE
Ф о р м а т к о м а н д ы
BUTIL-CREATE <Новое имя файла><Файл-описание>
О п и с а н и е
Команда CREATE генерирует пустой Btrieve-файл, используя характеристики заданные в файле-описании. К а к п р и м е н я т ь CREATE До того, как Вы сможете запустить CREATE, Вы должны сперва сгенерировать файл-описание в текстовом редакторе. Файлы- описанияля описаны в "Файлы-описания BUTIL". Для запуска CREATE введите команду в показанном выше формате. Замените <Новое имя файла> на имя файла, который Вы хотите создать. Вы можете задать полное имя пути, если требуется.
ПРИМЕЧАНИЕ:
Если имя, заданное в <Новое имя файла> - имя существующего Btrieve-файла, BUTIL создаст новый пустой файл вместо существующего файла. Все данные, хранящиеся в существующем файле, будут потеряны и их нельзя будет восстановить. ----------------------------------------------------------- Вместо <Файл-описание> введите имя файла-описания, содержащего спецификации для нового файла. Вы можете задать полное имя пути, если требуется. П р и м е р файла-описания для BUTIL-CREATE Файл-описание, показанный на Рисунке 3.1, создает Btrieve-файл с размером страницы 512 байт и двумя ключами. Фиксированная часть записи - длиной 98 байт. Файл допускает записи переменной длины, но не использует отсечение пробелов. Файл использует сжатие данных. Граница свободного пространства установлена на 20%. Btrieve будет перераспределять 100 страниц при создании файла. Первый ключ (Ключ 0) - сегментированный ключ с двумя допускающими дубликаты, немодифицируемыми, строковыми сегментами с альтернативной последовательностью поиска, определенной в файле UPPER.ALT, и с пробелом вместо пустого значения. Второй ключ (Ключ 2) - числовой ключ без сегментов, не допускающий дубликатов но позволяющий модификацию. Он отсортирован в убывающем порядке. | record=98 variable=y truncation=n Спецификации файла { compress=y key=2 page=512 | allocation=100 replace=n fthreshold=20 | position=1 length=5 duplicates=y Ключ 0, сегмент 1 { modifiable=n type=string alternate=y | null=y value=20 segment=y | position=6 length=10 duplicates=y Ключ 0, сегмент 2 { modifiable=n type=string alternate=y | null=y value=20 segment=n | position=16 length=2 duplicates=n Ключ 1 { modifiable=y type=numeric | descending=y alternate=n null=n | segment=n Имя файла | альтернативной { name=UPPER.ALT последовательности | поиска |
Рисунок 1.3 Пример файла-описания для CREATE П р и м е р Следующая команда создает Btrieve-файл по имени ACCTS.NEW, используя описание, обеспечиваемое файлом-описанием BUILD.DES BUTIL-CREATE ACCTS.NEW BUILD.DES
DROP
Ф о р м а т к о м а н д ы
BUTIL-DROP <Btrieve-файл><Номер ключа>[-O <Владелец>]
О п и с а н и е
Вы можете применять команду DROP для удаления дополнительного индекса из Btrieve-файла. Btrieve обновляет номер ключа других дополнительных индексов, если требуется, до завершения команды DROP. К а к п р и м е н я т ь DROP Для запуска DROP введите команду в показанном выше формате. Замените <Btrieve-файл> на имя Btrieve-файла, из которого Вы удаляете индекс. Вы можете задать полное имя пути, если требуется. Замените <Номер ключа> на номер дополнительного индекса, который Вы хотите отбросить. Замените <Владелец> именем владельца файла, если он существует. П р и м е р Следующий пример отбрасывает ключ с номером 6, дополнительный индекс, из файла MAILER.ADR Имя владельца файла - "Sales". BUTIL-DROP MAILER.ADR 6 -O Sales
EXTEND
Ф о р м а т к о м а н д ы
BUTIL-EXTEND <Btrieve-файл><Расширение файла>[-O <Владелец>]
О п и с а н и е
Когда Вы создаете Btrieve-файл, Вы можете определять файл только для одного тома. EXTEND позволяет Вам расширять существующий файл на два логических диска. Этот пункт полезен, когда данные, содержащиеся в одном файле, превышают физическую память одного диска или максимальный размер тома, поддерживаемый операционной системой. К а к п р и м е н я т ь EXTEND Для запуска EXTEND введите команду в показанном выше формате. Замените <Btrieve-файл> на имя Btrieve-файла, который Вы хотите расширить. Вы можете задать полное имя пути, если требуется. Замените <Расширение файла> на имя, которое Вы хотите использовать для расширения файла. Обязательно включите спецификацию устройства для нового устройства. Устройство должно отличаться от заданного Вами для первоначального файла. Вы можете задать полное имя пути, если требуется. Замените <Владелец> именем владельца файла, если он существует. Если файл расширяется на два диска, Вы должны загрузить оба диска до того, как Вы получите доступ к файлу. Более того, Вы должны загружать расширение файла на то же устройство, что Вы задавли при первом расширении файла. После того, как файл был расширен, нельзя выполнить обратную операцию. П р и м е р Следующий пример расширяет файл MAILER.ADR в файл MAILER2.ADR в директорий SALES устройства E. Имя владельца файла - "Sales". BUTIL-EXTEND MAILER.ADR E:SALESMAILER2.ADR -O Sales
INDEX
Ф о р м а т к о м а н д ы
BUTIL-INDEX <Btrieve-файл><Индексный файл><Файл-описание> [-O <Владелец>] О п и с а н и е Команда INDEX строит внешний индексный файл, опираясь на поле, которое Вы предварительно не задали как ключ. Записи в новом файле состоят только из 4-байтового адреса каждой записи в первоначальном Btrieve-файле, за которым следует значение, по которому Вы хотите сортировать. После того, как Btrieve создал внешний индекс, Вы можете использовать внешний индекс для поиска записей данных в первоначальном файле двумя способами: - Вы можете применять команду SAVE для поиска записей файла, используя внешний индексный файл. См. обсуждение команды SAVE для дополнительной информации. - Вы можете создать прикладную программу, которая исследует файл, используя внешний индекс. Прикладная программа должна сперва найти 4-байтовый адрес, используя значение ключа из индексного файла. Ваша прикладная программа может затем искать запись из первоначального файла, используя 4-байтовый адрес в операции Get Direct. К а к п р и м е н я т ь INDEX До того, как Вы сможете построить внешний индекс, применяя команду INDEX, Вы должны создать файл-описание для задания характеристик нового ключа. Для запуска INDEX введите команду в показанном выше формате. Замените <Btrieve-файл> на имя существующего Btrieve-файла, для которого Вы хотите построить внешний индекс. Вы можете задать полное имя пути, если требуется. Замените <Индексный файл> на имя файла, в котором Btrieve должен хранить внешний индекс. Вы можете задать полное имя пути, если требуется. ----------------------------------------------------------- ПРИМЕЧАНИЕ: Так как и файл-оригинал, и индексный файл могут иметь соответствующие прообразы, Вы не должны использовать одно и то же имя файла с двумя различными расширениями. ----------------------------------------------------------- Вместо <Файл-описание> введите имя создаваемого файла, содержащее определение нового ключа. Файл должен содержать определение каждого сегмента нового ключа. Вы можете задать полное имя пути, если требуется. См. "Файлы-описания BUTIL" для полной информации о файлах-описаниях. Замените <Владелец> именем владельца файла, если он существует. П р и м е р файла-описания для BUTIL-INDEX Например, файл-описание на Рисунке 4.2 определяет новый ключ с одним сегментом. Ключ начинается в 30-ом байте записи и имеет длину в 10 байтов. Он допускает дубликаты, модифицируемый, строкового типа и не использует альтернативную последовательность поиска. position=30 length=10 duplicates=y modifable=y type=string alternate=n segment=n После того, как Вы определили ключ для внешнего файла, INDEX создает файл. После создания файла INDEX отобразит на экране количество проиндексированных записей. П р и м е р Следующая команда создает внешний индексный файл QUICKREF.IDX для файла CUSTOMER08-14-92T Файл CUSTOMER08-14-92T не требует имя владельца. Файл-описание, содержащий определение нового ключа, - NEWIDX.DES. BUTIL-INDEX CUSTOMER08-14-92T QUICKREF.IDX NEWIDX.DES
LOAD
Ф о р м а т к о м а н д ы
BUTIL-LOAD <Входной файл><Btrieve-файл>[-O <Владелец>]
О п и с а н и е
Команда LOAD позволяет Вам добавлять записи из последовательного файла в Btrieve-файл без создания специально для этой цели прикладной программы. LOAD также обеспечивает удобный способ передачи записей из последовательного файла, созданного другой программой, в Btrieve-файл. LOAD не выполняет преобразования данных в загружаемом файле. После того, как Btrieve передаст записи, он отобразит на экране суммарное число записей, загруженных в Btrieve-файл. К а к п р и м е н я т ь LOAD До того, как Вы запустите команду LOAD, Вы должны создать последовательный файл, содержащий новые записи. Вы можете создать файл, применяя стандартный текстовый редактор или прикладную программу. Для запуска команды LOAD ведите команду в показанном выше формате. Замените <Входной файл> на имя последовательного файла, содержащего записи для загрузки в Btrieve-файл. Вы можете задать полное имя пути, если требуется. Замените <Btrieve-файл> на имя Btrieve-файла, в который Вы хотите добавлять записи. Вы можете задать полное имя пути, если требуется. Замените <Владелец> именем владельца Btrieve-файла, если он существует. LOAD ожидает, что каждая запись в <Входной файл> будет в следующем формате: - Первые n байтов должны быть длиной записи в ASCII. ДЛЯ ФАЙЛОВ С ЗАПИСЯМИ ФИКСИРОВАННОЙ ДЛИНЫ задаваемая длина должна всегда равняться длине записи, задаваемой Вами при создании файла. ДЛЯ ФАЙЛОВ С ЗАПИСЯМИ ПЕРЕМЕННОЙ ДЛИНЫ задаваемая длина должна быть по крайней мере равна минимальной фиксированной длине записи, задаваемой Вами при создании файла. - За длиной должен следовать один символ-разделитель (или запятая, или пробел). - За разделителем должны следовать сами данные. Длина данного должна быть в точности равна длине, заданной в начале записи - Запись должна завершаться возвратом каретки/переводом строки (шестнадцатеричному 0D0A ) - Последняя запись в файле должна содержать символ конца файла. (Ctrl-Z или шестнадцатеричное 1A). большинство текстовых редакторов и команда SAVE автоматически вставляют этот символ в файл. Вы можете создавть Ваш входной файл с помощью текстового редактора или прикладной программы.ЕСЛИ ВЫ ИСПОЛЬЗУЕТЕ ТЕКСТОВЫЙ РЕДАКТОР ПРИ СОЗДАНИИ ЗАГРУЖАЕМОГО
ВАМИ ФАЙЛА, удостоверьтесь, что Вы дополнили каждую запись пробелами для достижения заданной вами в начале записи длины. Поля, содержащие двоичные данные, не могут быть отредактированы большинством текстовых редакторов.ЕСЛИ ВЫ ИСПОЛЬЗУЕТЕ ПРИКЛАДНУЮ ПРОГРАММУ ПРИ СОЗДАНИИ
ЗАГРУЖАЕМОГО ВАМИ ФАЙЛА, удостоверьтесь, что Вы добавили в каждую запись возврат каретки и перевод страницы и включили конец файла в запись. Последовательные запросы ввода/вывода, обеспечиваемые большинством процессоров языков высокого уровня, добавляют автоматически символы возврата каретки, перевод строки и конца файла. Рисунок 4.3 иллюстрирует правильный формат каждой записи в выходном файле. Допустим, что Btrieve-файл не допускает записи переменной длины и имеет длину записи, равную 40 байт. 40,Запись за разделителем "запятая". <CR/LF> ¦ ¦ ________________________/ ¦ ¦ ¦ ¦ ¦ L- Возврат каретки/ ¦ ¦ Данное ¦ перевод строки ¦ ¦ ¦ ¦ ¦ L- 1 пробел для дополнения ¦ ¦ до соответствующей длины ¦ L------ Разделитель "запятая" ¦ L-------- Длина записи Рисунок 4.3 Формат записи для выходного файла
П р и м е р
Следующий пример загружает последовательные записи из файла MAILT в файл MAILER08-14-92T. Имя владельца для файла MAILER.ADR - "Sales". BUTIL-LOAD MAILT MAILER.ADR -O Sales
RECOVER
Ф о р м а т к о м а н д ы
BUTIL-RECOVER <Btrieve-файл> <Выходной файл> [-O <Владелец>]
О п и с а н и е
Команда RECOVER читает записи из заданного Btrieve-файла, используя операции Step, и создает последовательный файл, совместимый с командой LOAD. Каждая запись заканчивается возвратом каретки и переводом строки (шестнадцатиричное 0D0A). Файл завершается концом файла (шестнадцатиричное 1A). Вы можете применять RECOVER для поиска данных из поврежденного Btrieve-файла. Например, файл может быть поарежден при сбое системы во время доступа к файлу в ускоренном режиме. Команда RECOVER сможет найти многие, а возможно и все, записи из файла. Вы можете затем использовать команду LOAD для добавления записей в новый неповрежденный Btrieve-файл. К а к п р и м е н я т ь RECOVER Для запуска команды RECOVER введите команду в показанном выше формате. Замените <Выходной файл> на имя файла, где RECOVER будет сохранять восстановленные записи. Вы можете задать полное имя пути, если требуется. Замените <Btrieve-файл> на имя Btrieve-файла, который Вы хотите восстановить. Вы можете задать полное имя пути, если требуется. Замените <Владелец> именем владельца Btrieve-файла, если он существует. После того, как RECOVER найдет записи, она отобразит на экране общее число восстановленных записей. Если логическое устройство, содержащее Ваш выходной файл, будет заполнено до того, как весь файл будет восстановлен, RECOVER остановится, отобразит количество уже восстановленных записей и затем выдаст следующее сообщение: Disk volume is full. Enter new file name to continue or . to quit, then press <ENTER>. (Том диска заполнен. Введите имя нового файла для продолжения или . для выхода, затем нажмите <ENTER>.) Для продолжения операции в другой выходной файл выполните одну из следующих инструкций: - ЕСЛИ ВЫ ВОССТАНАВЛИВАЕТЕ BTRIEVE-ФАЙЛ НА ДИСКЕТУ, уберите полную дискету и замените ее другой отформатированной дискетой. - ЕСЛИ ВЫ ВОССТАНАВЛИВАЕТЕ BTRIEVE-ФАЙЛ НА ВИНЧЕСТЕР, задайте другое логическое устройство, имеющее свободное пространство. В обоих случаях введите имя файла, который Вы хотите, чтобы Btrieve использовал для продолжения хранения записей и нажмите клавишу Enter. Btrieve продолжит копирование записей из Btrieve- файла в новый выходной файл. Если логическое устройство заполнено, а Вы хотите завершить операцию RECOVER, введите точку (.) и нажмите <Enter>. П р и м е р Следующий пример ищет записи из файла MAILER.ADR загружает их в последовательный файл файл MAILT. Имя владельца для файла MAILER.ADR - "Sales". BUTIL-RECOVER MAILER.ADR MAILT -O Sales
RESET
Ф о р м а т к о м а н д ы
BUTIL-RESET <Номер связи>
О п и с а н и е
RESET выполняет Btrieve-операцию Reset для освобождения ресурсов используемых BREQUEST и Record Manager на рабочей станции. Она освобождает все захваты, отменяет все незавершенные транзакции и закрывает все открытые файлы станции. Вы можете освобождать рескрсы и чужой станции, введя номер связи станции <Номер связи>. Если Вы не знаете номер связи, консольные команды B ACTIVE, WHOAMI и USERLIST возвращают номера связей как часть своего выхода. К а к п р и м е н я т ь RESET Для запуска команды RESET введите команду в показанном выше формате. Вы можете запросить эту команду с любой рабочей станции сети, на которую загружен BREQUEST. Если Вы не задали номер станции, BUTIL-RESET освободит ресурсы данной станции. П р и м е р Следующий пример освобождает ресурсы рабочей станции, используя номер связи 12 сети. BUTIL-RESET 12
SAVE
Ф о р м а т к о м а н д ы
BUTIL-SAVE <Btrieve-файл> <Выходной файл> <Индекс(Y/N)> [<Индексный файл> |<Номер ключа>][-O<Владелец>] О п и с а н и е SAVE позволяет Вам искать записи из Btrieve-файлов и хранить их в отсортированном порядке в последовательном файле. Это - точная инверсия LOAD. Эта команда может быть использована в дополнение к LOAD так, что данные из Btrieve-файла могут быть легко извлечены, отредактированы и затем сохранены в другом Btrieve-файле. SAVE генерирует одну запись в выходном файле идля каждой записи, читаемой из Btrieve-файла. Каждая запись начинается со своей длины и заканчивается возвратом каретки и переводом строки (0D0AH). Файл завершается концом файла (1AH) и совместим с большинством текстовых редакторов. SAVE не выполняет преобразования данных в записях. Поэтому, если Вы используете текстовый редактор для модификации выходного файла, содержащего двоичные данные, результат может быть непредсказуем. После того, как SAVE завершит этот процесс, на экране будет отображено суммарное число сохраненных записей.
К а к п р и м е н я т ь SAVE
Для запуска SAVE введите команду в показанном выше формате.
Замените <Btrieve-файл> на имя Btrieve-файла, содержащего записи для сохранения. Вы можете задать полное имя пути, если требуется. Замените <Выходной файл> на имя последовательного файла, в котором Вы хотите, чтобы Btrieve хранил записи. Вы можете задать полное имя пути, если требуется. Применяйте один из следующих методов для задания порядка, в котором Вы хотите, чтобы SAVE хранила записи: - ЕСЛИ ВЫ ХОТИТЕ СОХРАНИТЬ ЗАПИСИ С ПОМОЩЬЮ ВНЕШНЕГО ИНДЕКСА, задайте Y для <Индекс (Y/N)> и замените <Индексный файл> именем внешнего индексного файла. Вы можете задать полное имя пути, если требуется. - ЕСЛИ ВЫ ХОТИТЕ СОХРАНИТЬ ЗАПИСИ С ПОМОЩЬЮ КЛЮЧА ОТЛИЧНОГО ОТ 0,задайте N для <Индекс (Y/N)> и замените <Номер ключа> номером соответствующего ключа. - ЕСЛИ ВЫ ХОТИТЕ СОХРАНИТЬ ЗАПИСИ С ПОМОЩЬЮ КЛЮЧА 0, не задавайте индексный файл или номер ключа. Замените <Владелец> именем владельца Btrieve-файла, если он существует. Если логическое устройство, содержащее Ваш выходной файл, будет заполнено до того, как был сохранен весь файл, SAVE остановится, отобразит количество уже сохраненных записей и затем выдаст следующее сообщение: Disk volume is full. Enter new file name to continue or . to quit, then press <ENTER>. (Том диска заполнен. Введите имя нового файла для продолжения или . для выхода, затем нажмите <ENTER>.) Для продолжения операции в другой выходной файл выполните одну из следующих инструкций: - ЕСЛИ ВЫ СОХРАНЯЕТ BTRIEVE-ФАЙЛ НА ДИСКЕТЕ, уберите полную дискету и замените ее другой отформатированной дискетой. - ЕСЛИ ВЫ СОХРАНЯЕТЕ BTRIEVE-ФАЙЛ НА ВИНЧЕСТЕРЕ, задайте другое логическое устройство, имеющее свободное пространство. В обоих случаях введите имя файла, который Вы хотите, чтобы Btrieve использовал для продолжения хранения записей и нажмите клавишу Enter. Btrieve продолжит копирование записей из Btrieve- файла в новый выходной файл. Если логическое устройство заполнено, а Вы хотите завершить операцию RECOVER, введите точку (.) и нажмите <Enter>. П р и м е р Следующие два примера иллюстрируют, как применять SAVE для поиска записей файла. Первый пример используют файл внешних индексов QUICKER.IDX для поиска записей мз файла CUSTOMER08-14-92T и сохранения их в последовательном файле CUST.SAV. BUTIL-SAVE CUSTOMER08-14-92T CUST.SAV Y QUICKREF.IDX Следующий пример ищет записи из файла CUSTOMER08-14-92T, используя номер ключа 3 и сохраненяя их в последовательном файле CUST.SAV. BUTIL-SAVE CUSTOMER08-14-92T CUST.SAV N 3SINDEX
Ф о р м а т к о м а н д ы BUTIL-SINDEX <Btrieve-файл> <Файл-описание> [-O <Владелец>] О п и с а н и е SINDEX создает дополнительный индекс для существующего Btrieve- файла. Номер ключа нового индекса будет на единицу выше номера предыдущего наивысшего ключа для этого файла. К а к п р и м е н я т ь SINDEX До того, как Вы сможете запустиь SINDEX, Вы должны обеспечить определение дополнительного индекса в файле-описании. См. "Файл- описание BUTIL" для дополнительной информации о файлах-описаниях BUTIL. Смотрите примеры файла-описания в разделе "SAVE" для руководства по созданию файла-описания SINDEX. Для запуска SINDEX введите команду в показанном выше формате. Замените <Btrieve-файл> на имя существующего Btrieve-файла, для которого Вы хотите создать индекс. Вы можете задать полное имя пути, если требуется. Замените <Файл-описание> именем Btrieve-файла, для которого Вы создаете индекс. Вы можете задать полное имя пути, если требуется. Замените <Владелец> именем владельца Btrieve-файла, если он существует. П р и м е р Следующий пример создает дополнительный индекс для файла MAILER.ADR. Имя файла-описания - SUPPIDX.DES. Имя владельца Btrieve-файла - "Sales". BUTIL-SINDEX CMAILER.ADR SUPPIDX.DES -O SalesSTAT
Ф о р м а т к о м а н д ы BUTIL-RECOVER <Имя файла> [-O <Владелец>] О п и с а н и е STAT показывает определенные характеристики Btrieve-файла и статистику по его содержанию. Вы можете использовать STAT для определения всех параметров, заданных для нового файла командой CREATE. Команда STAT также обеспечивает информацию по объему ключей и записей файла и по имени файла-расширения, если он существует. К а к п р и м е н я т ь STAT Для запуска STAT введите команду в показанном выше формате. Замените <Имя файла> на имя существующего Btrieve-файла, по которому Вы хотите получить статистику. Вы можете задать любое количество уровней директорий в имени файла. Замените <Владелец> именем владельца Btrieve-файла, если он существует. П р и м е р Следующий пример - получение статистики по файлу ADDRESS.BTR. Файл не имеет имени владельца. BUTIL-STAT ADDRESS.BTR Этот пример показывает, что файл ADDRESS.BTR был определен с размером страницы в 1536 байт, длиной записи 147 байт и 2 ключами. Файл использует сжатие данных, допускает записи переменной длины и имеет границу свободного пространства 10%. Первый ключ (Ключ 0) состоит из одного сегмента, начинается в позиции один, длиной 30 символов, допускает дубликаты, немодифицируемый, имеет строковый тип ключа и не имеет определенного пустого значения. Ключ 0 отсортирован в убывающем порядке. Второй ключ (Ключ 1) допускает дубликаты, модифицируемый, ручной и имеет пустое значение - шестнадцатиричное 20 (пробел). Он состоит из двух сегментов. Первый сегмент начинается в позиции 31, длиной в 30 байтов, имеет строковый тип ключа и пустое значение - шестнадцатиричное 20 (пробел). Второй сегмент начинается в позиции 55, имеет длину четыре, строковый тип ключа, убывающий и имеет пустое значение - шестнадцатиричное 20 (пробел). В файл было добавлено четырнадцать записей. Файл содержит 14 уникальных значений первого ключа и пять уникальных значений второго. Файла-расширения нет.
--------------------------------------------------------------¬ ¦ ¦ ¦ File Stats for address.btr ¦ ¦ ¦ ¦ Record Length = 147 Compressed Records = Yes ¦ ¦ Variable Records = Yes Free Space Threshold = 10% ¦ ¦ Number of Keys = 2 ¦ ¦ Page Size = 1536 Unused Pages = 0 ¦ ¦ Total Records = 14 ¦ ¦ ¦ ¦ ¦ ¦ Key Position Length Duplicates Modifiable Type Null Total¦ ¦ ¦ ¦ 0 1 30 Yes No String< __ 14 ¦ ¦ 1 31 30 Yes Yes String 20M 5 ¦ ¦ 1 55 4 Yes Yes String< 20M 5 ¦ ¦ ¦ L--------------------------------------------------------------
Рисунок 4.4 Пример выхода BUTIL-STAT
STOP
Ф о р м а т к о м а н д ы
BUTIL-STOP
О п и с а н и е STOP удаляет BREQUEST и Btrieve Record Manager из памяти и, когда возможно, возвращает распределенную память в операционную систему. После того, как Вы один раз запросили команду STOP, Вы не можете запускать прикладную программу Btrieve до тех пор, пока не перезагрузите BREQUEST или Btrieve Record Manager. К а к п р и м е н я т ь STOP Для запуска STOP введите команду в показанном выше формате.
VER
Ф о р м а т к о м а н д ы
BUTIL-VER
О п и с а н и е
VER сообщает версию BREQUEST, загруженную на рабочую станцию.
К а к п р и м е н я т ь VER
Для запуска VER введите команду в показанном выше формате.
ИСПОЛНИТЕЛЬ ФУНКЦИЙ BTRIEVE
Дискета Btrieve включает программу B, позволяющую Вам выполнять индивидуальные Btrieve-операции интерактивно. B.EXE - прикладная программа Btrieve, выполняющая Btrieve-операции, опираясь на задаваемые Вами для различных подсказок значения. Каждая подсказка обьяснена дальше. Программа B полезна для изучения работы Btrieve, тестирования логики Вашей программы и отладки. Для выполнения B введите следующую команду после DOS-подсказки: B <Enter> Когда Вы выполните B, появится меню с подсказками для каждого требуемого при вызове Btrieve параметра. Список кодов операций Btrieve приведен за подсказками. Для выполнения вызова Btrieve проинициализируйте все Btrieve- параметры, обычно требуемые для этой операции. Смотрите обсуждение Btrieve-операций записи в Главе 6 для информации о требуемых параметрах. Например, для выполнения операции Open выполните следующие шаги. 1) Задайте код операции 0. 2) Задайте режим "open" на подсказку "Key Number" (если надо). 3) Задайте имя файла на подсказку "Key Buffer". 4) Нажмите <F1> для выполнения Btrieve-операции. Программа B выполнит обращение к Btrieve и отобразит результат. Вы можете продолжить выполнение Btrieve-операций. Для завершения программы сперва закройте все открытые файлы, а затем нажмите клавишу Escape. Следующий список описывает все подсказки меню утилиты B. Подсказка Описание Function Введите код Btrieve-операции, которую Вы хотите выполнить. Список кодов операций будет показан в нижней половине экрана. В Приложении A также имеется список кодов Btrieve-операций. Key Path Задайте номер ключа для Btrieve-операции в поле пути ключа. Position Block Задайте файл, к которому Вы хотите получить доступ, в блоке позиции. B присвоит номер файлу на подсказку блока позиции, когда Вы успешно откроете файл в Btrieve. Вы можете иметь до 10 открытых файлов. Когда Вы открываете файлы, задавайте номер файла в блоке позиции. Правильные значения от 0 до 9 включительно. Начинайте с 0 для первого открываемого файла, 1 - для второго файла и так далее. После того, как Вы открыли файл, идентифицируйте его в последующих операциях, вводя его номер в поле блока позиции. Status Btrieve возвращает статус из каждой операции в это поле. Полезно проинициализировать статус значением 99 или другим невероятным кодом перед каждой операцией. Это позволит Вам увидеть изменение кода статуса при завершении Btrieve-операции. Data Buffer Установите длину буфера данных в правильное Length значение для операции, которую Вы хотите выполнить. Data Buffer Введите данные записи в это поле для операций Insert или Update. Вы можете вводить данные только в формате ASCII. Для операций Get Btrieve возвращает затребованные Вами данные в буфер данных. Только ASCII данные отображаются на экране. Key Buffer Сохраните или имя файла или значение ключа, в зависимости от выполняемой операции, в буфере ключа. Как и в случае буфера данных, только ASCII данные могут быть введены или отображены.
Следующие клавиши могут быть использованы при запуске программы B:
Клавиши Описание
<Esc> Завершает программу
<F1> Выполняет Btrieve-вызов
<Home> Передвигает на первую подсказку
<End> Передвигает на последнюю подсказку
<Up> Передвигает на предыдущую подсказку
<Down> Передвигает на следующую подсказку
<Left> Передвигает на символ влево
<Right> Передвигает на символ вправо
<Обратная Передвигает на предыдущую подсказку табуляция> <Табуляция> Передвигает на следующую подсказку <Ctrl-Home> Передвигает на начало поля <Ctrl-End> Передвигает на конец поля <Delete> Удаляет символ <Insert> Включает режим вставки Вы можете задавать только ASCII значения в параметрах буфера данных и буфера ключа.
КОНСОЛЬНЫЕ КОМАНДЫ
Btrieve обеспечивает консльными командами, позволяющими Вам управлять файлами и текущим уровнем применения процесса BSERVER. Вы можете выполнять эти команды с консоли любого файл-сервера, куда загружен BSERVER.VAP. Следующие разделы описывают консольные команды NetWare Btrieve. Каждое описание включает следующую информацию: - Ф о р м а т к о м а н д ы . Этот раздел представляет консольную команду в том формате6 в каком она должна быть введена на файл=сервере, где загружен BSERVER. - Н а з н а ч е н и е . Этот раздел описывает применение команды. - К а к п р и м е н я т ь ( к о м а н д у ) . Этот раздел описывает , как запрашивать команду, и результат выполнения команды.
B ACTIVE
Ф о р м а т к о м а н д ы .
B ACTIVE <Экран>
О п и с а н и е
Консольная команда B ACTIVE позволяет Вам получить список всех Btrieve-файлов, открытых в текущее время на файл-сервере, и увидеть номер связи (рабочей станции) для каждого открытого файла и типы захватов для каждого файла. Btrieve отобразит результат команды в формате таблицы на экране. Следующая информация будет показана для каждого файла: - Полное имя пути файла. - Номер связи сети, имеющей открытый файл. - Тип захватов для файла. Вы можете использовать номер связи, возвращаемый B ACTIVE, для определения пользователя открытого файла. Вы можете также использовать этот номер как параметр команд B RESET, BUTIL-RESET или Btrieve-операции Reset для закрытия файлов и освобождения ресурсов некоторой станции. Если другой VAP имеет открытым этот же файл, B ACTIVE отобразит двухсимвольный код номера связи. Например, двухсимвольный код для NetWare SQL - "NS". вы не можете использовать этот двухсимвольный код как вход команды B RESET. Смотрите обсуждение команды B RESET на следующих страницах. Коды для трех видов захвата: Захват Код Транзакция T Единичная запись A Множество записей M К а к п р и м е н я т ь B ACTIVE Для запуска B ACTIVE введите команду в показанном выше формате на сервере, где загружен BSERVER.VAP. Вставьте пробел между B и ACTIVE. Вы можете вводить команду символами как нижнего, так и верхнего регистров. B ACTIVE будет показывать сообщение на верху экрана до тех пор, пока не отобразит все активные файлы. Для просмотра дополнительных экранов введите вновь команду B ACTIVE с номером <Экрана>, который Вы хотите посмотреть. Например, для прсмотра второго экрана B ACTIVE введите следующее: B ACTIVE 2 <Enter>
B DOWN
Ф о р м а т к о м а н д ы .
B DOWN
О п и с а н и е
Консольная команда B DOWN освобождает все ресурсы, используемые BSERVER, и завершает выполнение BSERVER. Когда Вы запрашиваете B DOWN, Btrieve: - Закроет все открытые на файл-сервере файлы; - Освободит все захваты Btrieve на файл-сервере; - Снимет все транзакции на файл-сервере; - Отменит выполнение BSERVER. Если Вы запускаете другой VAP, используя BSERVER для доступа к файлам сети, Вы должны перед запросом команды B DOWN : - Запросить команду B ACTIVE, чтобы удостовериться, что нет открытых файлов для других VAP. - Если другие VAP имеют открытые Btrieve-файлы на файл-сервере, вы должны запросить соответствующую команду для этого VAP для того, чтобы закрыть его файлы и прервать процесс. Например, если Вы запускаете NetWare SQL, Вы запросите команды NS RESET и NS DOWN для того6 чтобы удостовериться, что все файлы NetWare SQL закрыты. После того, как Вы запросите команду B DOWN рабочие станции и другие VAP не смогут получить доступ к Btrieve- файлам через BSERVER до тех пор, пока вновь не будет запущен файл-сервер. К а к п р и м е н я т ь B DOWN Для запуска B DOWN введите команду в показанном выше формате на сервере, где загружен BSERVER.VAP. Вставьте пробел между B и DOWN. Вы можете вводить команду символами как нижнего, так и верхнего регистров.
B OFF
Ф о р м а т к о м а н д ы .
B OFF
О п и с а н и е
Консольная команда B OFFпрекращает обновление экрана предыдущей утилитой командной строки Btrieve. Вы можете запросить B OFF после того, как B ACTIVE, B STATUS или B USAGE показали необходимую Вам информацию. Если Вы не запросите B OFF, эти команды продолжат обновление экрана, даже если Вы запросите другую команду. К а к п р и м е н я т ь B OFF Для запуска B OFF введите команду в показанном выше формате на сервере, где загружен BSERVER.VAP. Вставьте пробел между B и OFF. Вы можете вводить команду символами как нижнего, так и верхнего регистров.
B RESET
Ф о р м а т к о м а н д ы .
B RESET <Номер связи>
О п и с а н и е
Консольная команда B RESET освобождает все ресурсы, используемые какой-либо станцией сети. Когда Вы запросите консольную команду B RESET с номером связи станции, Btrieve: - Закроет все открытые на станции файлы; - Освободит все захваты станции; - Снимет все транзакции на станции; - Отменит выполнение BSERVER. К а к п р и м е н я т ь B RESET Для запуска B RESET введите команду в показанном выше формате на сервере, где загружен BSERVER.VAP. Вставьте пробел между B и RESET. Вы можете вводить команду символами как нижнего, так и верхнего регистров. Подставьте номер связи станции вместо <Номер связи>. Например, для освобождения ресурсов станции 12 Вы должны будете запросить следующую команду на консоли сервера: B RESET 12 <Enter> Используйте звездочку (*) для всех станций сети Btrieve, а не одной станции. Для освобождения всех станций сети, имеющих открытые Btrieve-файлы, запросите следующую команду на консоли сервера: B RESET * <Enter> Операция B RESET не допускает двухсимвольную ASCII связь ID, означающую VAP, как вход. Для освобождения файлов, открытых VAP, Вы должны использовать соответствующую команду для VAP.
B STATUS
Ф о р м а т к о м а н д ы .
B STATUS
О п и с а н и е Вы можете применять B STATUS для помощи в определении наиболее эффективного уровня ресурсов, распределенных для BSERVER, для Вашей среды. B STATUS возвращает информацию о запросах сети, пакетных буферах и проведенных сеансах для файл-сервера, с которого Вы запросили команду. Команда также возвращает сколько раз обновлялся экран со времени запроса команды. К а к п р и м е н я т ь B STATUS Для запуска B STATUS введите команду в показанном выше формате на сервере, где загружен BSERVER.VAP. Вставьте пробел между B и STATUS. Вы можете вводить команду символами как нижнего, так и верхнего регистров. Когда Вы выполните B STATUS, Btrieve покажет следующий экран: Status for NetWare Btrieve Server VAP v5.xx Current, Total requests processed: nn nn Available, Max request buffers: nn nn Available, Max SPX packet buffers: nn nn Unprocessed SPX packet buffers: nn Current, Total SPX packets received: nn nn Current, Total SPX packets sent: nn nn Current, Total SPX requests processed: nn nn Current, Max, Peak SPX sessions: nn nn nn Nuber of display iterations: nn
Значения "Current" - значения, накопленные во время запроса команды B STATUS и отображаемые в первом столбце. Значения Total" - значения, накопленные со времени загрузки BSERVER и отображаемые во втором столбце. Значения "Max" - максимальные значения ресурсов, допустимых в сети текущей конфигурации, отображаются во втором столбце. Значения "Peak' отражают самую высокую степень использования ресурсов со времени загрузки BSERVER. Следующие абзацы описывают информацию, возвращаемую командой B STATUS. "Current, Total requests processed" отражает число запросов сети с помощью BSERVER с рабочих станций и других VAP таких, как NetWare SQL. "Available, Max request buffers" отражает число активных процессов для VAP. Для BSERVER это значение должно быть всегда равно 1. "Available, Max SPX packet buffers" отражает число пакетных буферов NetWare, допустимых на BSERVER, и максимальное число на сервере. "Unprocessed SPX packet buffers" отражает разницу между максимальным числом допускаемых NetWare пакетных буферов на сервере, и числом, допустимых для BSERVER. "Current, Total SPX packets received" отражает число сетевых пакетов, полученных BSERVER с рабочей станции. "Current, Total SPX packets sent" отражает число сетевых пакетов, посланных BSERVER на рабочую станцию. "Current, Max, Peak SPX sessions" отражает число проведенных сеанcов BSERVER и максимальное число. допустимое BSERVER. "Nuber of display iterations" отражает, сколько раз был обновлен экран со времени запроса команды B STATUS.
B USAGE
Ф о р м а т к о м а н д ы .
B USAGE
О п и с а н и е
Вы можете применять B USAGE для помощи в определении, был ли BSERVER сконфигурирован самым эффективным образом для Вашей среды. Консольная команда B USAGE возвращает информацию о следующих опциях конфигурации Btrieve: - Открытые файлы - Драйверы файлов - Захваты - Транзакции К а к п р и м е н я т ь B USAGE Для запуска B USAGE введите команду в показанном выше формате на сервере, где загружен BSERVER.VAP. Вставьте пробел между B и USAGE. Вы можете вводить команду символами как нижнего, так и верхнего регистров. Когда Вы выполняете B USAGE, Btrieve покажет на экране: Usage for NetWare Btrieve Server VAP v5.xx Current, Max, Peak files: nn nn nn Current, Max, Peak handles: nn nn nn Current, Max, Peak locks: nn nn nn Current, Max, Peak transactions: nn nn nn Значения "Current" - значения, находящиеся в использовании в настоящий момент и отображаемые в первом столбце. Значения "Max" - максимальные значения ресурсов, допустимых в сети текущей конфигурации BSERVER, отображаются во втором столбце. Значения "Peak" отражают самую высокую степень использования ресурсов со времени загрузки BSERVER.
| <<
| <
| >
| >>
|
Содержание
|