D3 Reference Manual

Index | Help

Поиск по страницам

Разделы / Общие сведения / file-defining item

file-defining item

Запись описания файла

Запись описания файла ("File Defining Item" или "FDI") - это средство, с помощью которого D3 устанавливает адрес файла на диске. Эта запись содержит цифровые данные в кодах ASCII, которые описывают местоположение файла в виртуальной памяти. Эти цифровые данные представляют собой "базу" и "модуло" файла, которые позволяют вычислить диск, цилиндр, сектор и головку.

Записи описания файлов часто называют "d"-указателями, так как их словарным кодом в атрибуте 1 является код "d".

Записи описания файлов определяют природу идентификатора записи (атрибут 0). Они описывают связи между файлами и содержат макросы для языка AQL и процессора обновления (UP), вызываемые по умолчанию.

В D3 информация о самом файле, его физических экстентах, состоянии, индексах и т.д. хранится в отдельной структуре данных, называемой "управляющим блоком файла" ("file control block" или "FCB"). Доступ к этой структуре пользователь может получить только косвенным образом через запись описания файла.

Атрибут 0: Идентификатор записи

Этот атрибут содержит имя определяемого файла.

Атрибут 1: Код словаря ("d"-код)

В записях описания файлов этот атрибут должен содержать символ "d". Для дальнейшей классификации записи за символом "d" может следовать один из следующих символов:

l Любое обновление регистрируется в журнале транзакций.
n Отключает блокировку обновления файла, даже если глобальная блокировка обновления включена. Не совместима с опцией "u".
p Первичное файловое пространство содержит только записи-указатели.
s В идентификаторах записи различаются буквы верхнего и нижнего регистров.
u Включает блокировку обновления файла, даже если глобальная блокировка обновления отключена. Не совместима с опцией "n".
x Во время операции сохранения содержимое файла не копируется. Во время восстановления файл вообще не восстанавливается.
y Во время операции сохранения содержимое файла не копируется. После восстановления восстанавливается пустой файл с тем же самым "модуло".
Атрибут 2: База

Этот атрибут содержит базовый идентификационный номер фрейма (fid) соответствующего файла. Значение, присвоенное в качестве базы файла, выводится на экран в сообщении о создании файла.

Атрибут 3: Модуло

Этот атрибут содержит количество непрерывных фреймов в первичном файловом пространстве файла. Значение, присвоенное в качестве "модуло", выдается на экран в сообщении о создании файла. Файл не может быть создан, если на диске нет достаточно большого непрерывного свободного пространства, способного удовлетворить требуемому размеру файла.

Атрибут 4: Зарезервирован и недоступен
Атрибут 5: Блокировка доступа

В главном словаре счета ("dm") этот атрибут контролирует доступ к словарям. В словаре этот атрибут контролирует доступ к файлам. Для того, чтобы иметь доступ к соответствующему словарю, один из пользовательских кодов блокировки в атрибуте 5 записи пользователя в файле "users" должен совпадать с одним из кодов блокировки, указанном в этом атрибуте. Несколько кодов блокировки обрабатываются как несколько значений многозначного атрибута и разделяются в этом атрибуте маркерами значений.

Атрибут 6: Блокировка обновления

Атрибут 6 управляет доступом к главным словарям счетов или к словарям файлов для обновления. Для того, чтобы иметь право на обновление соответствующего словаря, один из кодов блокировки в атрибуте 6 записи пользователя в файле "users" должен совпадать с одним из кодов блокировки, указанным в этом атрибуте. Несколько кодов блокировки обрабатываются как несколько значений многозначного атрибута и разделяются в этом атрибуте маркерами значений.

Атрибут 7: Зарезервирован и недоступен
Атрибут 8: Корреляция (см. "correlative").

Этот атрибут содержит коды обработки, описанные в разделе "Коды обработки". Коды, которые указываются в этом атрибуте, позволяют файлу выступать в роли прикладной задачи, выполняя предпроцессорную и постпроцессорную обработку данных. Коды обработки выполняются при обновлении записей в файле.

Атрибут 9: Выравнивание

Этот атрибут содержит коды для указания типа выравнивания для данного идентификатора записи:

l Выравнивание по левому краю с переносом слова в случае переполнения. Разрыв может быть в любом месте слова.
r Выравнивание по правому краю с потерей символов слева при переполнении.
t Выравнивание по левому краю с переносом слова в случае переполнения. Разрыв происходит только на месте пробела.
u Выравнивание по левому краю с потерей символов при переполнении справа.
w Перед выводом управление передается процессору вывода (OP). За этим кодом в атрибуте может следовать любая действительная команда OP. Однако этот код не может работать с колоночным форматом. Команды "с точкой", следующие за "w", добавляются к этому атрибуту в качестве префикса. Второе значение может содержать команды "с точкой", которые должны быть добавлены в конец атрибута для выходной обработки.
ww Перед выводом управление передается процессору вывода (OP), который обрабатывает все атрибуты от текущего до конца записи. Этот код работает только с неколоночным форматом. Команды "с точкой", следующие за "ww", добавляются в виде префикса к первому атрибуту. Таким образом они выполняются до вывода данных. Второе значение может содержать команды "с точкой", которые должны быть добавлены в конец записи для выходной обработки.
x Используется с "l", "r" или "t" для расширения поля вывода в целях заполнения ширины терминала или принтера, заданной в команде "term".
Атрибут 10: Ширина колонки

Атрибут ширины колонки используется для указания количества знаковых позиций, которое необходимо выделить в отчетах AQL для вывода данных, которые хранятся в атрибуте.

Атрибут 11: Зарезервирован и недоступен
Атрибут 12: Зарезервирован и недоступен
Атрибут 13: Перераспределение

Атрибут перераспределения используется в процессах сохранения и восстановления для изменения значения "модуло" соответствующего файла.

Атрибут 14: Входные преобразования (см. "input-conversion")

Этот атрибут содержит коды обработки, применяемые к вводимым данным перед их записью на диск.

Атрибут 15: Макро

Атрибут "макро" содержит имена атрибутов, которые должны использоваться по умолчанию в качестве спецификации ввода для процессора обновления (UP). Указанные здесь записи описания атрибутов используются по умолчанию как спецификация вывода для AQL, если отсутствует атрибут "output-macro". Они используются при вызове любой команды языка AQL, которая допускает использование записей описания атрибутов и не содержит списка имен атрибутов. Имена атрибутов в списке разделяются пробелами. Если указанное имя атрибута не существует в словаре, оно игнорируется.

Атрибут "макро" может содержать несколько значений. В этих случаях макрос, который должен использоваться языком AQL или процессором обновления, определяется путем вызова подпрограммы на языке FlashBASIC из входного преобразования ("input-conversion") "d"-указателя. Эта подпрограмма присваивает номер значения функции "access"(18). Этот номер значения соответствует номеру значения макроса, который должен использоваться.

Для автоматического запроса идентификатора записи может использоваться модификатор "id-prompt" или опция "i" процессора обновления.

Атрибут 16: Макро вывода

Если в атрибуте содержится непустое значение, оно используется по умолчанию в качестве макроса вывода. В противном случае в качестве макроса вывода используется значение атрибута 15, если оно непустое. Два разных атрибута - "макро" и "макро вывода" используются для того чтобы для процессора обновления (UP) и AQL по умолчанию использовались разные записи описания атрибутов.

Атрибут 17: Описание

Атрибут предназначен для комментариев и описаний, касающихся функции соответствующего файла. Символ "?" позволяет получить помощь в процессоре обновления.

Атрибут 18: Зарезервирован
Атрибут 19: Зарезервирован
Атрибут 20: "hotkey.all"
Атрибут 21: "hotkey1"
Атрибут 22: "hotkey2"
Атрибут 23: "hotkey3"
Атрибут 24: "hotkey4"
Атрибут 25: "hotkey5"
Атрибут 26: "hotkey6"
Атрибут 27: "hotkey7"
Атрибут 28: "hotkey8"
Атрибут 29: "hotkey9"
Атрибут 30: "hotkey0"