next up previous contents
Next: Общая структура описания базы Up: Описание переменных. Previous: Внутреннее представление записи.   Contents

Описание полей записи.

Массив структур, описывающих каждое поле записи.

  struct attribute_description
    {
      char *symbolic_name;
        /* символическое название поля */

      int offset;
        /* смещение поля внутри записи */

      short int type;
        /*
         *   константа, определяющая формат чтения данных из
         *   файла условий фильтрации и их вывод.
         */

      int lenght;
        /* длина поля в байтах */

      char secondary_db_build_flag;
        /*
         * Флаг, указывающий на необходимость создания
         * вторичного индекса по данному атрибуту.
         */
    } g_attr_description[ ];

Массив объявлен глобально. Доступ к структурам осуществляется с помощью функций - по имени поля или по его порядковому номеру.

  Возвращает номер структуры в массиве, описывающей атрибут с заданным именем.
  int get_attr_num_by_name(const char * symbolic_name);

  Возвращает указатель на структуру с заданным номером.
  struct attr_description * get_attr_by_num(const int attr_num);

Добавление атрибута в массив осуществляется с помощью следующей функции.

  int add_attr_to_array(struct attr_description * next_attr_description)

Массив структур, описывающих переменные для доступа ко вторичным базам данных.

  struct attribute_db
    {
      DB * secondary_db_handle;
        /*
         * указатель на вторичную базу данных для данного
         * атрибута, если её нет = NULL
         */
    } attr_db[ ];



Aleks Sherikov 2006-05-23