Sources
Delphi Russian Knowledge Base
DRKB - база знаний по Дельфи в рунете, составленная Виталием Невзоровым

ВВЕДЕНИЕ В BTRIEVE

01.01.2007

(Руководство по Btrieve)

Btrieve - законченная система управления записями, обеспечивающая Вас необходимыми функциями для хранения, поиска и корректировки данных в Ваших файлах баз данных. Благодаря новым методам и структурам Btrieve Вы можете игнорировать физическую структуру файлов, поддержку индексов и проблемы параллелизма и сосредоточиться на логических аспектах Ваших файлов и баз данных.

Для доступа к Btrieve Вы включаете обращения к специфическим функциям в Вашей программе, посылая Btrieve информацию, необходимую для выполнения требуемой операции. Т.к. соглашения по обращению к программам различны для разных языков высокого уровня и компиляторов, в Btrieve включены интерфейсные программы для многих наиболее популярных языков и компиляторв, включая следующие:

Это руководство содержит документацию и примеры программ для BASIC, C, Pascal и COBOL. Документация и дополнительные интерфейсные программы для других языков и компиляторов находятся на дискете Btrieve. Глава 4 включает информацию о требованиях для программ, написанных на ассемблере, для обращения к Btrieve из языков, для которых интерфейс не поддерживается.

ВОЗМОЖНОСТИ BTRIEVE

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

ПОДДЕРЖКА ИНДЕКСОВ

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

Глава 2 содержит более детальную информацию о том, как использовать индексные признаки Btrieve в Вашей прикладной программе.

СПЕЦИФИКАЦИИ ФАЙЛА

Btrieve позволяет Вам создавать файлы данных, используя обращения к функциям из Вашей прикладной программы или используя внешние утилиты (BUTIL). На уровне файлов Btrieve предлагает Вам следующие возможности:

УПРАВЛЕНИЕ ПАМЯТЬЮ

Btrieve позволяет Вам задать объем памяти, используемой кэш-буфером ввода/вывода, основываясь на требуемой для Вашей прикладной программы памяти и общим объемом памяти, инсталированным на Вашем сервере. Объем памяти, зарезервированный Вами для кэш-буфера ввода/вывода, может оказать эффект на выполнение Btrieve.

УПРАВЛЕНИЕ ПАРАЛЛЕЛИЗМОМ И ЗАЩИТОЙ

Btrieve обеспечивает возможность управления параллелизмом и защитой данных в сети. Btrieve поддерживает сохранность и защиту данных, позволяя Вам:

Глава 2 содержит дополнительную информацию о том, как Btrieve и Ваша прикладная задача обрабатывают параллелизм и защиту.

СОХРАННОСТЬ ДАННЫХ

Btrieve использует некоторые методы для обеспечения сохранности Ваших файлов данных. Эти методы включают:

BTRIEVE УТИЛИТЫ

Btrieve включает две программы-утилиты так же, как и некоторые диалоговые команды, позволяющие Вам выполнять тестирование и управление данными без составления прикладной программы. Они включают:

Смотрите главу 4 для дополнительной информации об утилитах Btrieve и диалоговых командах.

ОПЕРАЦИИ УПРАВЛЕНИЯ ЗАПИСЯМИ

Btrieve поддерживает 36 отдельных операций, которые Вы можете выполнять в Вашей прикладной программе. Для выполнения Btrieve-операции Ваша прикладная задача должна выполнить следующие задачи:

Таблица 1.1 перечисляет Btrieve-операции и коды операций и содержит краткое описание выполняемой операцией функции.

             Таблица 1.1 (Операции Btrieve)
---------------------------------------------------------------------
  ОПЕРАЦИЯ                    КОД    ОПИСАНИЕ
---------------------------------------------------------------------
  Открыть                      0  Делает файл доступным
  (Open)

  Закрыть                      1  Отменяет доступ к файлу
  (Close)

  Вставить                     2  Вставляет новые записи в файл
  (Insert)

  Изменить                     3  Изменяет текущую запись
  (Update)

  Удалить                      4  Удаляет текущую запись из
  (Delete)                        файла

  Получить Равную              5  Получает запись со значением
  (Get Equal)                     ключа равным требуемому
                                  значению ключа

  Получить Следующую           6  Получает запись следующую за

  (Get Next)                      текущей записью в индексном пути

  Получить Предыдущую          7  Получает запись предшествующую
  (Get Previous)                  текущей записи в индексном пути

  Получить Большую             8  Получает запись со значением
  (Get Greater)                   ключа большим требуемого
                                  значения ключа

  Получить Большую или         9  Получает запись со значением
   Равную                         ключа равным или большим
  (Get Greater or Equal)          требуемого значения ключа

  Получить Меньшую Чем        10  Получает запись со значением
  (Get Less Than)                 ключа меньшим требуем
                                  значения ключа

  Получить Меньшую Чем        11  Получает запись со значением
  или Равную                      ключа равным или меньшим
  (Get Less Than or Equal)        требуемого значения ключа

  Получить Первую             12  Получает первую запись в
  (Get First)                     запрошенном пути доступа

  Получить Последнюю          13  Получает последнюю запись в
  (Get Last)                      запрошенном пути доступа

  Создать                     14  Создает Btrieve-файл с
  (Create)                        заданными характеристиками

  Статистика                  15  Возвращает характеристики файла
  (Stat)                          и индекса и число записей

  Расширить                   16  Расширяет файл на два дисковых
  (Extend)                        тома

  Установить Директорию       17  Изменяет текущую директорию
  (Set Directory)

  Получить Директорию         18  Возвращает текущую директорию
  (Get Directory)

  Начать Транзакцию           19  Отмечает начало набора логически
  (Begin Transaction)             связанных операций

  Закончить Транзакцию        20  Отмечает конец набора логически
  (End Transaction)               связанных операций

  Снять Транзакцию            21  Удаляет операции выполненные
  (Abort Transaction)             во время незавершенной
                                  транзакции

  Получить Позицию            22  Получает позицию текущей записи
  (Get Position)

  Получить Направление        23  Получает запись в заданной
  (Get Direct)                    позиции

  Шаг на Следующую            24  Получает запись физически
  (Step Next)                     следующую за текущей записью

  Остановить                  25  Завершает резидентные в памяти
  (Stop)                          программы Администратора Записей
                                  (Record Manager) на рабочей
                                  станции

  Версия                      26  Возвращает загруженную в
  (Version)                       текущее время версию Record
                                  Manager

  Отмена Захвата              27  Отменяет захват записи или
  (Unlock) записей                записей

  Сброс                       28  Освобождает все ресурсы, взятые
  (Reset)                         рабочей станцией

  Установить Владельца        29  Присваивает файлу имя владельца
  (Set Owner)

  Стереть Владельца           30  Убирает имя владельца из файла
  (Clear Owner)

  Создать Дополнительный      31  Создает дополнительный индекс
  Индекс
  (Create Supplemental Index)

  Отбросить Дополнительный    32  Убирает дополнительный индекс
  Индекс
  (Drop Supplemental Index)

  Шаг на Первую               33  Возвращает запись физически
  (Step First)                    первую в файле

  Шаг на последнюю            34  Возвращает запись физически
  (Step Last)                     последнюю в файле

  Шаг на Предыдущую           35  Получает запись физически
  (Step Next)                     предыдущую текущей записи

Смотри в главе 6 полное описание всех операций управления записями Btrieve. Глава 5 содержит инструкции по вызову Btrieve из BASIC, Pascal, COBOL и C. Приложения C, D, E и F содержат примеры программ, иллюстрирующих как инициализировать параметры, выполнять обращения к Btrieve-функциям и проверять возвращаемые статусные коды.

КАК BTRIEVE РАБОТАЕТ

NetWare Btrieve - базируемое на сервере дополнение Btrive Record Manager, работающее под управлением Advanced NetWare v2.1 и выше.

Все Btrieve-запросы сетевой рабочей станции выполняются на сетевом сервере. По сравнению с программой базируемой у клиента конфигурация базируемая на сервере улучшает операции сетевых баз данных по следующим причинам:

Обращения к NetWare Btrieve имеют тот же формат, что и обращения к Btrieve в другой среде. Прикладные задачи единственного пользователя Btrieve, обращающегося к NetWare Btrieve, могут запросить дополнительные проверки статуса благодаря прверке параллелизма, запрашиваемого в многопользовательской среде.

Кроме того, для обеспечения базируемой на сервере системы управления записями для прикладных задач рабочих станций NetWare Btrieve также включает средства, позволяющие VAPs использовать обращения Btrieve к BSERVER. Программа BROUTER обеспечивает необходимую связь между BSERVER и другими VAP-прграммами.

ПРОГРАММА BSERVER

Программа BSERVER должна быть загружена на каждый файл-сервер, где хранятся Btrieve-файлы. BSERVER состоит из ядра программы, осуществляющей взаимодействие специальных Btrieve-запросов, оболочки сервера и модуля сетевых коммуникаций. BSERVER выполняет следующие функции:

Прикладные программы и VAPs, осуществляющие Btrieve-вызовы, всегда взаимодействуют с BSERVER через BREQUEST или через BROUTER.

ПРОГРАМММА BREQUEST

Программа BREQUEST должна быть загружена на каждую станцию, посылающую запросы на сервер. Прикладные программы на рабочих станциях связаны с BSERVER через BREQUEST. BREQUEST выполняет следующие функции:

На рабочих станциях OS/2 BREQUEST.DLL и BTRCALLS.DLL программы динамических связей должны быть доступны прикладной программе. BTRCALLS.DLL-программа должна быть доступна для того, чтобы поддерживать совместимость между NetWare Btrieve и Btrieve для OS/2. BREQUEST.DLL-программа обеспечивает связь между Вашей прикладной программой и BSERVER.

ПРОГРАММА BROUTER

BROUTER-программа загружается на файл-сервер сети. Это - программа межпроцессорной связи, позволяющая VAP-программам загружаемым на файл-серверы сети взаимодействовать с BSERVER. Эта возможность позволяет Вам писать Btrieve прикладную программу как VAP, делая ее расположенной на сервере, а не программой клиента.

BROUTER-программа выполняет следующие функции:

Смотрите "Интерфейс с BROUTER" для инструкций по созданию интерфейса с BROUTER.

УПРАВЛЯЮЩАЯ ЛОГИКА

NetWare Btrieve программы функционируют так, как будто они являются подпрограммами Вашей прикладной прграммы. NetWare Btrieve поддерживает два метода доступа к BSERVER:

Следующие разделы описывают эти два метода доступа.

Доступ к BSERVER через BREQUEST

Следующие шаги описывают управляющую логику, когда прикладная задача рабочей станции имеет доступ к BSERVER через BREQUEST- программу, загружаемую на рабочую станцию.

Если прикладная задача на рабочей станции делает Btrieve-запросы как к локальному (неразделенному) устройству, так и к сетевому (разделенному) устройству, то на рабочей станции должна быть загружена копия Btrive Single User (однопользовательский Btrieve) или DOS 3.1 Networks также как и BREQUEST. BREQUEST определяет должен ли запрос быть передан в локальный Btrieve, обслуживающий неразделенные файлы, или в программу BSERVER, обслуживающую разделенные файлы на сервере.

Рисунок 1.2 изображает пример конфигурации для простой сети Novell, использующей NetWare Btrieve.

                           ФАЙЛ-СЕРВЕР
 -----------¬           -----------------¬        ----------------¬
 ¦Диск сети ¦<--------->¦  NetWare       ¦<---¬   ¦Локальный диск ¦
 L-----------           +----------------+    ¦   L----------------
                        ¦  BSERVER.VAP   ¦<----       /
                        L-----------------            ¦
                             /     /                 /
----------------¬            ¦     ¦        ----------------¬
¦  DOS 3.x      ¦            ¦     ¦        ¦  DOS 3.x      ¦<--¬
+---------------+            ¦     ¦        +---------------+   ¦
¦ NetWare Shell ¦            ¦     ¦        ¦ NetWare Shell ¦   ¦
+---------------+            ¦     ¦        +---------------+   ¦
¦               ¦<------------     ¦        ¦  Btrieve      ¦<---
¦  BREQUEST     ¦                  ¦        ¦ Record Manager¦<--¬
¦               ¦<---¬             ¦        +---------------+   ¦
+---------------+    ¦             L------->¦  BREQUEST     ¦   ¦
¦ Прикладная    ¦<----                 ---->¦               ¦<---
¦ задача Btrieve¦                      ¦    +---------------+
L----------------                      ¦    ¦ Прикладная    ¦
Рабочая станция 1                      L--->¦ задача Btrieve¦
имеющая доступ                              L----------------
только к разделенным                        Рабочая станция 2
Btrieve-файлам                              имеющая доступ
                                            к разделенным и
                                            локальным
                                            Btrieve-файлам
               Рисунок 1.2
     Конфигурация сети, использующей BSERVER.VAP
(Обратите внимание, что Рабочая станция 2 имеет доступ как к
           разделенным так и к локальным файлам)

Рисунок 1.3 иллюстрирует сеть с конфигурацией множества серверов. На этой диаграмме файл-серверы A и B обслуживают разделенные файлы сети. Обратите внимание, все станции сети могут делать запросы к обоим файл-серверам. Программы BREQUEST, загруженные на рабочие станции, посылают запросы на соответствующий файл-сервер. Правильная идентификация файл-серверов и томов существенна для правильного функционирования системы.

                            ФАЙЛ-СЕРВЕР А
                         -----------------¬        -----------------¬
------------------------>¦    NetWare     ¦<------>¦Разделенный диск¦
¦  ----------------¬     +----------------+        L-----------------
¦  ¦    DOS 3.x    ¦     ¦  BSERVER.VAP   ¦<-----------------------¬
¦  +---------------+     L-----------------  ----------------¬     ¦
¦  ¦ NetWare Shell ¦                         ¦    DOS 3.x    ¦     ¦
¦  +---------------+                         +---------------+     ¦
¦  ¦               ¦                         ¦ NetWare Shell ¦     ¦
+->¦   BREQUEST    ¦<---¬                    +---------------+     ¦
¦  ¦               ¦    ¦                    ¦               ¦     ¦
¦  +---------------+    ¦               ---->¦   BREQUEST    ¦<----+
¦  ¦ Прикладная    ¦<----               ¦    ¦               ¦     ¦
¦  ¦ задача Btrieve¦                    ¦    +---------------+     ¦
¦  L----------------                    L--->¦ Прикладная    ¦     ¦
¦  Рабочая станция 1                         ¦ задача Btrieve¦     ¦
¦                                            L----------------     ¦
¦                                            Рабочая станция 2     ¦
¦  ----------------¬                                               ¦
¦  ¦  DOS 3.x      ¦       ----------¬       ----------------¬     ¦
¦  +---------------+       ¦Локальный¦<----->¦    DOS 3.x    ¦     ¦
¦  ¦ NetWare Shell ¦       ¦  диск   ¦  ---->¦               ¦     ¦
¦  +---------------+       L----------  ¦    ¦---------------¦     ¦
¦  ¦               ¦                    ¦    ¦ NetWare Shell ¦     ¦
+->¦   BREQUEST    ¦<---¬               ¦    ¦---------------¦     ¦
¦  ¦               ¦    ¦               L--->¦ Btrieve Record¦     ¦
¦  +---------------+    ¦               ---->¦    Manager    ¦     ¦
¦  ¦ Прикладная    ¦<----               ¦    +---------------+     ¦
¦  ¦ задача Btrieve¦                    L--->¦               ¦     ¦
¦  L----------------                         ¦   BREQUEST    ¦<----+
¦  Рабочая станция 3                    ---->¦               ¦     ¦
¦                                       ¦    +---------------+     ¦
¦                                       ¦    ¦ Прикладная    ¦     ¦
¦                                       L--->¦ задача Btrieve¦     ¦
¦                                            L----------------     ¦
¦                                            Рабочая станция 4     ¦
¦                       -----------------¬                         ¦
L---------------------->¦  BSERVER.VAP   ¦<-------------------------
                        +----------------+
-----------------¬      ¦   NetWare      ¦
¦Разделенный диск¦<---->¦                ¦
L-----------------      L-----------------
                           ФАЙЛ-СЕРВЕР B

                     Рисунок 1.3
          Сеть с множеством файл-серверов
      (Обратите внимание, что BREQUEST, загруженный на каждую рабочую
   станцию, может иметь доступ ко всем файл-серверам. Рабочая
   станция 4 имеет доступ как к разделенным так и к локальным
   Btrieve-файлам.)

Если Вы используете множество файл-серверов или интерсеть, все файл-серверы не должны быть в "online" при старте BREQUEST на рабочих станциях. BREQUEST распознает новые файл-серверы или устройства при обращении к новому файл-серверу или при изменении распределения сетевых устройств.

Доступ к BSERVER через BROUTER

ПРИМЕЧАНИЕ:

Если Вы не используете Value-Added Process (VAP), доступный NetWare Btrieve, можете пропустить этот раздел.

Следующие шаги иллюстрируют управляющую логику при обращении прикладной программы рабочей станции к VAP, который затем обращается к BSERVER через программу BROUTER.

Если прикладная программа рабочей станции делает Btrieve-запрос к локальному (неразделенному) устройству и к VAP, вызывающему Btrieve, копия Btrieve Single User или DOS 3.1 Networks должна быть загружена на рабочую станцию. Рисунок 1.4 иллюстрирует логику управления, когда VAP имеет доступ к Btrieve-файлам используя NetWare Btrieve.

                            РАБОЧАЯ СТАНЦИЯ

                            --------------¬
1. Прикладная программа     ¦  Прикладная ¦
на рабочей станции          ¦  программа  ¦
посылает запрос в VAP1      +-------------+
                            ¦Интерфейс VAP¦
                            L---T----------
                                ¦      /
2. Интерфейс VAP1 посылает      ¦      ¦       7. VAP1 возвращает
запрос на сервер                ¦      ¦       результаты
                                ¦      ¦       прикладную программу
                                ¦      ¦       рабочей станции
                                ¦СЕРВЕР¦
                                /      ¦
                              ---------+--¬
                           ---+   VAP1    ¦<-¬
3. VAP1 упаковывает запрос ¦  ¦           ¦  ¦  6. BROUTER возвращает
и выполняет прерывание     ¦  +-----------+  ¦  результаты в VAP1
7B                         L->¦           +---
                              ¦  BROUTER  ¦
4. BROUTER получает Btrieve---+           ¦<-¬  5. BSERVER выполняет
вызов и посылает его в     ¦  +-----------+  ¦  запрос и посылает
BSERVER                    ¦  ¦           ¦  ¦  результаты в
                           L->¦  BSERVER  +---  BROUTER
                              ¦           ¦     -------¬
                              ¦           ¦<--->¦ Диск ¦
                              L------------     L-------

                Рисунок 1.4
           Применение другого VAP с BSERVER

КЭШ-БУФЕРЫ

Кэш-память - область памяти, резервируемая BSERVER для буферизации страниц, читаемых с диска. Вы определяете размер кэш-памяти при конфигурации BSERVER. Кэш-память разделена на ряд буферов, каждый - имеющий размер самой большой страницы, к которой будет иметь доступ Ваша прикладная программа. В основном большая кэш-память улучшает выполнение, т.к. позволяет большему количеству страниц быть в памяти в данное время. (См. Главу 3 для дополнительной информации о конфигурации BSERVER.)

Когда Ваша прикладная программа делает запрос какой-либо записи, BSERVER сперва проверяет кэш-память ,чтобы посмотреть не находится ли уже страница, содержащая эту запись, в памяти. Если запись уже в кэш-памяти, BSERVER пересылает запись из кэш-памяти в буфер данных Вашей прикладной программы. Если страницы нет в кэш-памяти, BSERVER копирует страницу с диска в кэш-буфер до того, как пересылает требуемую запись в Вашу прикладную программу.

Если все кэш-буферы заполнены, когда BSERVER необходимо передать новую страницу в память, по алгоритму "наименьшего использования" (LRV) определяется, какую страницу BSERVER перекрывает в кэш-памяти. LRU уменьшает время выполнения, сохраняя наиболее употребляемые страницы в памяти.

Когда Ваша прикладная программа добавляет или корректирует запись, BSERVER сперва модифицирует страницу в кэш-памяти, а затем записывает страницу на диск, Модифицированная страница остается в кэш-памяти до тех пор, пока LRU не определит, что она должна быть перекрыта новой страницей.

ПАРАМЕТРЫ ОБРАЩЕНИЯ К BTRIEVE

Btrieve запрашивает определенную информацию из Вашей прикладной программы для выполнения операций управления записями и файлами. Ваша прикладная программа использует параметры Btrieve-обращения для задания информации, необходимой Btrieve и обеспечения места для возвращаемой Btrieve информации. При каждом обращении к Btrieve Ваша прикладная программа должна передать Btrieve все параметры, требуемые используемым Вами языком, даже если Вы и не ждете их значений. Этот раздел дает общее описание параметров и как Btrieve их использует.

ПРИМЕЧАНИЕ:

Для специфической информации о том, как использовать параметры в определенном языке см. Главу 5 "Интерфейс языков". Для информации о том, как Btrieve использует параметр для конкретной операции см. Главу 6 "Btrieve- операции записи".

КОД ОПЕРАЦИИ

Параметр кода операции сообщает Btrieve, какую операцию Вы хотите выполнить. Ваша прикладная программа должна задавать код операции при каждом обращении к Btrieve. Переменная, которую Вы определяете для хранения кода операции, должна быть 2-байтовым целым числом. Btrieve никогда не изменяет значение кода операции.

КОД СТАТУСА

Все Btrieve-операции возвращают значение кода статуса, информируя Вашу прикладную программу обо всех ошибках. Код статуса равный 0 показывает, что операция выполнена успешно. Для некоторых языков, в частности для С и Паскаля, вызов Btrieve - целая функция и Вашей прикладной программе не требуется задавать отдельный параметр для кода операции. Если Вы применяете язык, требующий отдельного параметра кода операции, задайте 2-байтовое целое для хранения возвращаемого значения.

БЛОК ПОЗИЦИИ

Btrieve использует параметр блока позиции для хранения указателей позиционирования и другой информации, необходимой для доступа к какому-либо файлу. Ваша прикладная программа использует блок позиции для определения Btrieve-файла, к которому Вы хотите получить доступ при выполнении некоторой операции. Btrieve ожидает, что блок позиции - это 128-байтовый блок памяти. В зависимости от прикладного языка блок позиции может быть строкой, массивом или частью буфера файла (как, например, в Бейсике).

Ваша прикладная программа должна присвоить уникальный блок позиции каждому Btrieve-файлу, его необходимо открыть и проинициализировать блоком пробелов или двоичных нулей до выполнения операции Open. Ваша прикладная программа НИКОГДА не должна писать в блок позиции после того, как он был проинициализирован и присвоен файлу, до тех пор пока Вы не выполните над файлом операцию Close. Вы можете тогда переинициализировать блок позиции таким образом, чтобы его можно было использовать для другого Btrieve-файла. Запись в блок позиции для открытого Btrieve--файла может привести к ошибкам или повреждению файла,

БУФЕР ДАННЫХ

Буфер данных - блок памяти, содержащий специфический вид информации, требуемый Btrieve-операцией.

Для операций, в которые вовлечена запись или чтение Btrieve- файла, блок данных содержит записи, которые Ваша прикладная программа передает в файл и из файла. Например, когда Ваша прикладная программа ищет запись в файле, Btrieve читает запись из файла и затем записывает запись в область памяти, указанную как блок записи для этой операции.

Для других операций блок данных содержит спецификации файла, определения и другую информацию, необходимую Btrieve для выполнения операции. Когда Ваша прикладная программа выполняет операцию Create, например, она создает блок данных, содержащий спецификации для создаваемого Вами файла в порядке, ожидаемом Btrieve. Btrieve затем читает буфер данных и создает файл согласно спецификации.

Btrieve распознает буфер данных как ряд байтов в памяти. Он не различает какие-либо поля или переменные как объекты буфера данных. Вы можете определить буфер данных как любой тип переменных, поддерживаемых Вашим языком: структурой, массивом или простой строковой переменной. Для некоторых версий Бейсика буфер данных - область Блока управления файла (FCB), определяемая сегментом FIELD.

ДЛИНА БУФЕРА ДАННЫХ

Для всех операций, требующих буфер данных, Ваша прикладная программа должна задать для Btrieve длину буфера данных в байтах. Это необходимо потому, что

Ваша прикладная программа должна определить буфер данных как 2-байтовое целое, При всех операциях Btrieve записывает некоторое значение в параметр длины буфера данных, даже если это значение равно 0 (показывающее, что не было возвращено данных). Поэтому Вы должны всегда инициализировать буфер данных соответствующей длины для какой-либо операции до вызова Btrieve.

Применяйте следующие правила для инициализации значения параметра длины буфера данных:

БУФЕР КЛЮЧА

Ваша прикладная программа должна посылать переменную для буфера ключа при каждом обращении к Btrieve. В зависимости от операции Ваша прикладная программа может устанавливать буфер ключа в определенное значение или Btrieve может возвращать значение буфера ключа.

Для некоторых языков Btrieve не может явно определить длину буфера ключа. Поэтому Вы должны всегда удостовериться, что заданная Вами переменная для буфера ключа имеет достаточную длину для хранения всего значения, требуемого для операции. Иначе Btrieve-запросы могут повредить другие данные, хранимые в следующей за буфером ключа памяти.

НОМЕР КЛЮЧА

Параметр номера ключа всегда 2-байтовая целая переменная со знаком. Для большинства Btrieve-операций этот параметр сооббщает Record Manager о пути доступа в этой операции. Для других операций Ваша прикладная программа использует параметр номера ключа для задания режима открытия файла, шифровки, логического устройства или другой информации. Btrieve никогда не изменяет значение параметра номера ключа.

Когда Вы используете параметр номера ключа для задания пути доступа к файлу, номер должен быть от 0 до 23, т.к. Btrieve допускает до 24 ключей или ключевых сегментов в файле.

ИНТЕРФЕЙС ЯЗЫКА

Интерфейс языка обеспечивает связь между Вашей прикладной программой и Btrieve. Интерфейс языка специфичен для определенного языка, компилятора и среды.

Когда Ваша прикладная программа обращается к Btrieve, интерфейс делает предварительные проверки параметров и проверяет, находится ли Btrieve Record Manager резидентно в памяти. Если интерфейс не обнаруживает ошибок, он выполняет соответствующее обращение для операционной среды, активизируя программу Record Manager.

ПРИМЕЧАНИЕ:

Информация об интерфейсах Бейсика, Паскаля, КОБОЛа и С включена в Главу 5 этого руководства. Для специальной информации об языках и компиляторах не включенных в Главу 5 см. файл INTERFACE.DOC на програмной дискете Btrieve.

Previous page:
Руководство по Btrieve
Top:
DRKB
Next page:
ГЛАВА 2. ОРГАНИЗАЦИЯ BTRIEVE-ФАЙЛОВ