The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Интерактивная система просмотра системных руководств (man-ов)

 ТемаНаборКатегория 
 
 [Cписок руководств | Печать]

recno (3)
  • recno (3) ( FreeBSD man: Библиотечные вызовы )
  • >> recno (3) ( Русские man: Библиотечные вызовы )
  • recno (3) ( Linux man: Библиотечные вызовы )
  •  

    НАЗВАНИЕ

    recno - методы доступа к базам нумерованных данных  

    СИНТАКСИС

    #include <sys/types.h>
    #include <db.h>
    
     

    ОПИСАНИЕ

    Функция dbopen - это библиотечный интерфейс для файлов базы данных. Одним из поддерживаемых форматов является формат файлов нумерованных данных (record number files). Основное описание методов доступа к базе данных находится в dbopen(3): это руководство содержит предназначенную только для использования recno информацию.

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

    Структура данных, специфичная для recno, включена в dbopen и определена в заголовочном файле <db.h> следующим образом:

    typedef struct {

    u_long flags;
    u_int cachesize;
    u_int psize;
    int lorder;
    size_t reclen;
    u_char bval;
    char *bfname;
    } RECNOINFO;

    Элементы этой структуры определены так:

    flags
    Значение flag является одним из следующих:
    R_FIXEDLEN
    (записи фиксированной длины, не разделенные байтом. Структурный элемент reclen определяет длину записи, а структурный элемент bval используется как заполняющий символ. Все вставленные в базу данных записи, размер которых меньше reclen байтов, автоматически удлиняются.);
    R_NOKEY
    (в интерфейсе, определенном dbopen, последовательный поиск записей выполняется среди ключей и в структуре данных. Если R_NOKEY flag определен, функции cursor не обязательно заполняют ключевую структуру. Это позволяет приложениям извлекать записи из конца файлов, не считывая все промежуточные (предыдущие) записи.);
    R_SNAPSHOT
    Этот flag требует, чтобы в момент вызова dbopen была взята копия файла, вместо того, чтобы разрешить считывать с оригинального файла какие-либо неизмененные записи.).
    cachesize
    - предполагаемый максимальный размер кэша памяти в байтах. Это значение только предлагаемое, и средство доступа при необходимости задействует большее количество памяти. Если cachesize равен 0 (размер не определен), используется кэш по умолчанию.
    psize
    Cредство доступа recno хранит в памяти копии записей в btree. Эта величина - размер (в байтах) страниц, используемых для узлов в дереве. Если psize равен 0 (размер страниц не определен), то размер страниц выбирается согласно размеру блока основной файловой системы. Для получения более полной информации см. btree(3).
    lorder
    - байтовый порядок для чисел в метаданных, хранящихся в базе данных. Номер должен представлять порядок как число, например, порядок числа big endian - 4,321. Если lorder равен 0 (порядок не определен), то используется порядок, определенный архитектурой машины.
    reclen
    - фиксированная длина записи.
    bval
    - разграничивающий байт, отмечающий конец записи с нефиксированной длиной и заполняющий символ для записей с фиксированной длиной. Если значение не определено, то для отметки конца нефиксированной записи используется новая строка (``\n''), а записи с фиксированной длиной дополняются пробелом.
    bfname
    Функция recno хранит в памяти копии записей в btree. Если bfname не равно нулю, оно определяет имя btree-файла.

    Часть "данные" из пары ключ/данные, использующейся функцией recno, является такой же, как в других средствах доступа. Ключ используется иначе. Как следует из описания файла заголовков библиотеки <db.h>, поле ключа data должно служить указателем на расположение памяти типа recno_t. Этот тип памяти обычно является аналогом наибольшего типа данных, доступного в данной реализации. Поле ключа size указывает на размер типа.

    Из-за того, что метаданных, связанных с основными recno-файлами, может и не быть, любые внесенные изменения для значений по умолчанию (фиксированная длина записи или разделяющий байт) должны особо указываться каждый раз при открытии файла.

    В интерфейсе, определенном dbopen, использование интерфейса put для создания новой записи повлечет за собой создание множества пустых записей, если номер записи больше, чем номер наибольшей записи в текущей базе данных.  

    НАЙДЕННЫЕ ОШИБКИ

    Функция recno может завершиться появлением ошибки и вписать в переменную errno любой код, определенный для dbopen(3), а также следующие:
    [EINVAL]
    (была сделана попытка добавить слишком большую запись к базе данных фиксированной длины).
     

    СМ. ТАКЖЕ

    btree(3) dbopen(3), hash(3), mpool(3),

    Document Processing in a Relational Database System, Michael Stonebraker, Heidi Stettner, Joseph Kalash, Antonin Guttman, Nadene Lynn, Memorandum No. UCB/ERL M82/32, May 1982.  

    НАЙДЕННЫЕ ОШИБКИ

    Поддерживаются только следующие порядки байтов: big endian и little endian.


     

    Index

    НАЗВАНИЕ
    СИНТАКСИС
    ОПИСАНИЕ
    НАЙДЕННЫЕ ОШИБКИ
    СМ. ТАКЖЕ
    НАЙДЕННЫЕ ОШИБКИ


    Поиск по тексту MAN-ов: 




    Спонсоры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2022 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру