Глава 2. Работа с Pervasive.SQL       

 TOC \o "2-3" \h \z Рекомендации по настройке сервера. PAGEREF _Toc227578609 \h 2 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003200320037003500370038003600300039000000

Установка сервера Pervasive.SQL V10. PAGEREF _Toc227578610 \h 3 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003200320037003500370038003600310030000000

Параметры сервера Pervasive.SQL V10. PAGEREF _Toc227578611 \h 6 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003200320037003500370038003600310031000000

Установка клиента Pervasive.SQL V10. PAGEREF _Toc227578612 \h 9 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003200320037003500370038003600310032000000

Организация доступа к БД СБиС++ без сетевого диска. PAGEREF _Toc227578613 \h 10 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003200320037003500370038003600310033000000

Создание БД в формате для работы через сервер Pervasive.SQL. PAGEREF _Toc227578614 \h 11 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003200320037003500370038003600310034000000

Обновление БД в формате работы через сервер Pervasive.SQL. PAGEREF _Toc227578615 \h 19 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003200320037003500370038003600310035000000

Ошибка Pervasive.SQL с кодом X. PAGEREF _Toc227578616 \h 22 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003200320037003500370038003600310036000000

2: Ошибка ввода-вывода. PAGEREF _Toc227578617 \h 22 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003200320037003500370038003600310037000000

3: Таблица не открыта. PAGEREF _Toc227578618 \h 22 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003200320037003500370038003600310038000000

4: Запись не найдена. PAGEREF _Toc227578619 \h 22 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003200320037003500370038003600310039000000

11: Указанное имя файла не верно. PAGEREF _Toc227578620 \h 23 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003200320037003500370038003600320030000000

12: Указанный файл не найден. PAGEREF _Toc227578621 \h 23 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003200320037003500370038003600320031000000

15: Приложение обнаружило ошибку ввода/вывода при создании предварительного образа  PAGEREF _Toc227578622 \h 23 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003200320037003500370038003600320032000000

18: Диск переполнен. PAGEREF _Toc227578623 \h 24 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003200320037003500370038003600320033000000

20: На рабочей станции не загружен менеджер btrieve. PAGEREF _Toc227578624 \h 24 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003200320037003500370038003600320034000000

30: Заданный файл не является файлом данной версии Pervasive.SQL. PAGEREF _Toc227578625 \h 24 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003200320037003500370038003600320035000000

46: Доступ к файлу запрещён. PAGEREF _Toc227578626 \h 25 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003200320037003500370038003600320036000000

49: Неверен расширенный тип ключа. PAGEREF _Toc227578627 \h 25 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003200320037003500370038003600320037000000

51: Некорректное имя файла. PAGEREF _Toc227578628 \h 25 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003200320037003500370038003600320038000000

54: Указанная таблица физически разрушена. PAGEREF _Toc227578629 \h 25 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003200320037003500370038003600320039000000

59: Заданный файл уже существует. PAGEREF _Toc227578630 \h 26 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003200320037003500370038003600330030000000

78: Тупиковая ситуация. PAGEREF _Toc227578631 \h 26 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003200320037003500370038003600330031000000

84: Требуемые данные блокированы другим пользователем. PAGEREF _Toc227578632 \h 26 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003200320037003500370038003600330032000000

85: Файл заблокирован. PAGEREF _Toc227578633 \h 26 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003200320037003500370038003600330033000000

91: Ошибка сервера. PAGEREF _Toc227578634 \h 27 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003200320037003500370038003600330034000000

94: Ошибка доступа. PAGEREF _Toc227578635 \h 27 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003200320037003500370038003600330035000000

95: Сессия не может больше продолжаться. PAGEREF _Toc227578636 \h 27 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003200320037003500370038003600330036000000

97: Буфер данных слишком мал. PAGEREF _Toc227578637 \h 28 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003200320037003500370038003600330037000000

161: Превышено количество клиентов сервера базы данных, указанное в лицензии  PAGEREF _Toc227578638 \h 28 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003200320037003500370038003600330038000000

170: Не указан логин пользователя для доступа к базе данных. PAGEREF _Toc227578639 \h 28 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003200320037003500370038003600330039000000

171: Неправильно указан пароль пользователя для доступа к базе данных. PAGEREF _Toc227578640 \h 28 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003200320037003500370038003600340030000000

198: Неправильно установлены параметры. PAGEREF _Toc227578641 \h 29 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003200320037003500370038003600340031000000

3012: Недоступен локальный Pervasive.SQL. PAGEREF _Toc227578642 \h 29 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003200320037003500370038003600340032000000

3014: Недоступен Pervasive.SQL на сервере. PAGEREF _Toc227578643 \h 29 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003200320037003500370038003600340033000000

3103: Сервер не найден. PAGEREF _Toc227578644 \h 29 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003200320037003500370038003600340034000000

3105: Не найден общий для сервера и клиента сетевой протокол. PAGEREF _Toc227578645 \h 30 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003200320037003500370038003600340035000000

???. PAGEREF _Toc227578646 \h 30 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003200320037003500370038003600340036000000

Способы решения распространённых ошибок Pervasive.SQL. PAGEREF _Toc227578647 \h 30 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003200320037003500370038003600340037000000

Настройка службы Брандмауэр. PAGEREF _Toc227578648 \h 30 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003200320037003500370038003600340038000000

Настройка параметра <SatEntry0>. PAGEREF _Toc227578649 \h 31 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003200320037003500370038003600340039000000

Программа медленно работает. PAGEREF _Toc227578650 \h 32 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003200320037003500370038003600350030000000

Проверьте на сервере. PAGEREF _Toc227578651 \h 32 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003200320037003500370038003600350031000000

Проверьте на рабочей станции. PAGEREF _Toc227578652 \h 33 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003200320037003500370038003600350032000000

Аварийное завершение Pervasive.SQL. PAGEREF _Toc227578653 \h 33 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003200320037003500370038003600350033000000

 

Рекомендации по настройке сервера

Клиент-серверная технология предполагает, что основная нагрузка при работе с базами будет приходиться на сервер. С увеличением числа пользователей, с увеличением количества и размеров базы данных требования, предъявляемые к серверу, естественно возрастают и отражаются в соответствующих настройках. Некоторые параметры настройки сервера сильно зависят от реальных условий его использования, поэтому рекомендации, данные ниже, нужно рассматривать как приблизительные. Рассмотрим параметры, которые наиболее сильно зависят от реальной работы.

Cache Allocation Size       

Определяет количество памяти, которую будет использовать сервер для работы. Значение этого параметра зависит от версии СУБД и физического количества памяти, имеющейся на сервере. Оптимальным значением параметра можно считать значение, приблизительно равное общему объёму таблиц всех используемых баз данных. Разумеется, это значение не должно превышать физическое количество памяти, установленной на компьютере, и обязательно должно остаться достаточно памяти для нужд самой операционной системы.          

Initiation Time Limit и Operation Bundle Limit

Эти два параметра определяют, с какой частотой сервер БД сохраняет изменения на диск. Чем больше значения этих параметров, тем реже будут происходить обращения к жесткому диску, что позволяет существенно повысить скорость работу. Но тем больше вероятность повреждения базы данных при, например, внезапном отключении питания сервера. Для повышения производительности рекомендуется установить значения этих параметров в максимальные и обеспечить бесперебойную работу сервера БД.

System Cache

Этот параметр определяет, будет ли сервер БД использовать системный файловый буфер или свой внутренний.  Если в параметре Max MicroKernel memory Usage указано ненулевое значение, то сервер БД использует свой внутренний буфер. Отказ от его использования и включение системного буфера имеет смысл в случае, если на сервере установлена высокопроизводительная дисковая подсистема.

Права доступа к файлам базы данных

Обычным (не администратору) пользователям сервера достаточно дать права только на чтение и запись файлов в каталоге базы данных. Права на создание и удаление файлов во избежание неприятностей давать не надо.

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

Установка сервера Pervasive.SQL V10

Вставьте в CD/DVD-привод диск с программой на сервере. В окне автозапуска выберите установку сервера в зависимости от типа установленной системы:

Рис. 2- SEQ Рис. \* ARABIC 1 – Выбор установки в окне автозапуска Pervasive.SQL V10

Запустится мастер установки сервера Pervasive.SQL V10:

Рис. 2- SEQ Рис. \* ARABIC 1 – Мастер установки сервера Pervasive.SQL V10

Выполните необходимые рекомендации (в частности, закрыть все программы, с которыми может возникнуть конфликт при установке Pervasive.SQL V10) и, для продолжения установки, нажмите кнопку «Next>».

Рис. 2- SEQ Рис. \* ARABIC 2 – Предложение о заключении лицензионного соглашения

На предложение о принятии лицензионного соглашения ответьте «Yes». В этом случае будет продолжена программа установки сервера. 

Выберите необходимый вариант установки («Complete» - полная, «Custom» - выборочная) и нажмите «Next>»:

Рис. 2- SEQ Рис. \* ARABIC 3 – Как правило, выбирается обычная установка сервера

Запустится процесс копирования файлов в указанный каталог:

Рис. 2- SEQ Рис. \* ARABIC 4 – Копирование файлов программы

Завершите установку сервера (кнопка «Готово>») и перезагрузите компьютер. Установите общий доступ на чтение к каталогу с установленной СУБД на сервере.

Параметры сервера Pervasive.SQL V10

Для установки и изменения параметров сервера Pervasive.SQL V10 используется утилита Pervasive.SQL V10  «Control Center», которая вызывается из меню «Пуск/ Все программы/ Pervasive.SQL V10».

Рекомендуемые значения для 10 рабочих мест и одной базы данных уже установлены по умолчанию, менять их не следует. Дадим особые рекомендации для некоторых параметров:

§         Transaction Durability (группа Data integrity)

Рекомендуем оставить параметр без изменений (флаг у параметра не установлен). Если флаг установить, то это может привести к ухудшению работы сервера.

§         Back to Minimal State if Inactive (группа Memory usage)

Рекомендуем оставить параметр без изменений (флаг у параметра не установлен). Флаг следует установить, если Pervasive.SQL ставится на локальный компьютер и если редко работать с базой данных. При этом освобождаются ресурсы, которые Pervasive.SQL занимает при работе.

§         Cache Allocation Size (группа Performance tuning)

Рекомендуем оставить параметр без изменений. Если возникают проблемы с производительностью, то указанное значение следует увеличить до 40% от размера оперативной памяти (зависит от нагрузок сервера).

§         Max Microkernel Memory Usage (группа Performance tuning)

Если Pervasive.SQL установлен на сервере, то для повышения производительности сервера рекомендуем увеличить значение до 80.

Установка клиента Pervasive.SQL V10

Вставьте диск с программой в CD/DVD-привод на клиентских местах. В окне автозапуска выберите установку клиента Pervasive.SQL V10 в зависимости от типа установленной системы:

Рис. 2- SEQ Рис. \* ARABIC 6 – Выбор установки в окне автозапуска Pervasive.SQL V10

Запустится мастер установки клиента Pervasive.SQL V10:

Рис. 2- SEQ Рис. \* ARABIC 7 – Мастер установки клиента Pervasive.SQL V10

Так же как и для сервера, перед установкой клиента рекомендуется закрыть программы, с которыми может возникнуть конфликт. Пройдите все шаги мастера, нажимая кнопку «Next».

Чтобы не таскать лицензионный диск с одного клиентского места на другое можно поступить следующим образом:

1.       скопируйте с диска в каталог с установленной СУБД на сервере, файл SetupClient_x86.exe или SetupClient_x64.exe (в зависимости от типа установленной системы);

2.       откройте общий доступ на чтение к каталогу с СУБД;

3.       с клиентского места запустите нужный мастер установки клиента.

Настройка клиента Pervasive.SQL V10 выполняется по аналогии с сервером (подробности в разделе «Параметры сервера Pervasive.SQL V10»).

Организация доступа к БД СБиС++ без сетевого диска

Доступ без сетевого диска работает только на версиях Pervasive SQL 9.5 и  10.30.

Формат работы через сервер Pervasive.SQL позволяет обеспечить максимальную безопасность данных от несанкционированного доступа. Главным отличием от старых форматов является работа СБиС++ не через каталог, а непосредственно через сервер. Это означает, что сама база будет лежать в защищенном месте на сервере и непосредственно доступ к ней может получить только администратор. Т.е. не будет «расшаренного» каталога и права для пользователей можно будет назначать непосредственно на сервере Pervasive. Визуальным отличием новой БД будет отсутствие файлов «*.tbh» в каталоге БД (остаются «*.mkd»). Ключевой таблицей в новом формате является таблица «Формат базы данных» (файл «dbfrmt.mkd»). Повреждение или удаление данной таблицы ведет к невозможности работы с БД.

Создание БД в формате для работы через сервер Pervasive.SQL

Конвертация БД

Первоначально необходимо выполнить конвертацию существующей БД.

Напоминаем, что перед выполнением конвертации необходимо делать архивные копии БД.

Если в каталоге БД присутствует файл «!dbfrmt.mkd», то необходимо сначала конвертировать с новыми словарями в текущем формате. Для этого нужно запустить утилиту Jinnee и выбрать «Сконвертировать»:

Рис. 2- SEQ Рис. \* ARABIC 13 – Выбор формата при конвертации БД

В настройках указать следующие параметры:

§         указать каталог конвертируемой БД;

§         в качестве формата базы данных выбрать пункт «Оставить существующий формат БД»;

§         указать каталог модулей, которые используются для работы.

Если в каталоге нет файла «!dbfrmt.mkd», но присутствует файл «dbfrmt.mkd», а также если БД была только что конвертирована на предыдущем шаге, то в утилите «Jinnee» необходимо указать следующие настройки:

§         указать каталог конвертируемой БД;

§         в качестве формата базы данных выбрать пункт «Для Pervasive.SQL (доступ к БД без сетевого диска)»;

§         указать каталог модулей, которые используются для работы.

Создание БД в Pervasive.SQL

Все шаги по созданию новой БД выполняются в «Pervasive.SQL Control Center»:

Рис. 2- SEQ Рис. \* ARABIC 14 – Создание новой БД

§         в меню «File» выбираем пункт «New?Database», либо кнопка  на панели инструментов, и т.д.;

§         указываем название сервера (по умолчанию, прописывается название сервера, на котором выполняются настройки).

На следующем шаге настраиваем БД:

Рис. 2- SEQ Рис. \* ARABIC 15 – Настройка параметров БД

§         в «Database Name» указываем желаемое имя БД;

§         в «Location» выбираем каталог конвертируемой БД;

§         снимаем галочку «Bound» и устанавливаем «Create dictionary files» и «Relational integrity enforced»;

§         в группе «DNS Options» устанавливаем галочку «Create DNS» и в «Open mode» выбираем пункт «Normal».

Добавление данных в БД Pervasive.SQL

Для добавления таблиц в созданную БД необходимо использовать утилиту «Jinnee»:

Рис. 2- SEQ Рис. \* ARABIC 16 – Добавление таблиц в БД Pervasive.SQL

§         в меню «Базы данных» необходимо выбрать команду «Обновить DDF-файлы» и указать путь к БД.

§         При подключении к Pervasive.SQL оставьте предложенное имя пользователя и пустой пароль для входа в базу данных без изменения. Данные о таблицах будут занесены в БД.

Создание пользователей в БД Pervasive.SQL

Создание пользователей в БД Pervasive.SQL подчинено общим правилам создания пользователей в SQL-представлении БД СБиС++ и подробно описывается в руководстве «Обмен данными» (глава «Организация SQL-доступа»).

Очень важно, чтобы в свойствах БД («Properties»), в которой будут созданы пользователи, закладке «Btrieve Security» был выбран пункт «Database (DB authentication and authorization)».

Рис. 2- SEQ Рис. \* ARABIC 17 – Настройка свойств БД

Добавление пользователей в БД Pervasive.SQL

Все работы по добавлению пользователей выполняются в программе «Джинн» (меню «Базы данных»):

Рис. 2- SEQ Рис. \* ARABIC 18 – Добавление пользователей в БД Pervasive.SQL

Если база уже была до этого в формате работы через сервер, то необходимо сначала удалить прежний пароль доступа к БД (команда «Удалить пароль доступа к БД»).

Для синхронизации списка пользователей СБиС++ и БД Pervasive.SQL, необходимо выбрать команду «Добавить пользователей в БД Pervasive», выбрать каталог базы данных и указать имя пользователя и пароль доступа к БД:

 

Рис. 2- SEQ Рис. \* ARABIC 19 – Настройки доступа к БД Pervasive.SQL

В подключении к Pervasive.SQL необходимо указать:

§         имя сервера, на котором расположена БД;

§         название БД, созданной в Pervasive.SQL, в которой будет формироваться список пользователей.

Настройка sbis.ini для доступа к БД без сетевого диска

На этом шаге считается, что база подготовлена для работы через сервер Pervasive.SQL. Теперь необходимо настроить СБиС++ для работы с сервером. Эти настройки выполняются в файле sbis.ini – файле конфигураций:

§         в качестве каталога базы данных необходимо написать следующее:

БазаДанных=btrv:///<название_бд_в_Pervasive>

Например, если БД создана на сервере «MainServer», а название БД в Pervasive.SQL «sbisdb», то необходимо прописать следующий путь к БД:

БазаДанных=btrv://MainServer/sbisdb

§         для осуществления работы в сетевом режиме, необходимо проверить следующие параметры:

СетевойРежим=ДА
РазделяемыеНастройки=ДА

Сохраняем настройки в файле sbis.ini и запускаем СБиС++.

Обновление БД в формате работы через сервер Pervasive.SQL

Подготовка БД для работы

База уже должна находится в режиме работы через сервер Pervasive.SQL. Если это не так, то для создания БД в нужном формате необходимо прочитать инструкцию по «Создание БД в формате для работы через сервер Pervasive.SQL».

Перед тем, как выполнить конвертацию БД необходимо сделать следующее:

§         запустить «Pervasive.SQL Control Center» и перейти к свойствам БД («Properties»);

§         появиться запрос на доступ к БД, в котором требуется указать пользователя «Master» и его пароль;

§         перейти к свойству «Security» и убрать галочку «Enable Security»;

Рис. 2- SEQ Рис. \* ARABIC 20 – Настройки доступа к БД Pervasive.SQL

Нажать кнопочку «Apply».

§         перейти на закладку «Btriеve Security», выбрать пункт «Classic(OS authentication and authorization)».

Обязательно выполните указанные рекомендации. Их не соблюдение  может повлечь возникновение ошибки «Ошибка при вызове PvAddTable», что в свою очередь потребует остановки сервисов Pervasive.SQL и их повторного перезапуска.

Запуск конвертации

Для выполнения конвертации необходимо запустить утилиту Jinnee и выбрать «Сконвертировать»:

В окне конвертации (рис. 2–13) необходимо:

§         указать каталог конвертируемой БД;

§         в качестве формата базы данных выбрать «Для Pervasive.SQL (доступ к БД без сетевого диска)»;

§         указать каталог модулей, которые используются для работы.

Запускаем процесс конвертации, нажав кнопку «Далее».

Добавление таблиц СБиС++ в БД Pervasive.SQL

Для добавления таблиц в БД необходимо в утилите Jinnee выполнить команду «Обновить DDF файлы» (меню «Базы данных») и указать каталог с БД для обновления.

Обновление прав пользователей СБиС++ в БД Pervasive.SQL

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

4.       включить в БД возможность работы с пользователями. Для этого:

§         запустить «Pervasive.SQL Control Center» и в свойствах БД («Properties») на закладке «Security» включить «Enable Security»;

§         ввести пароль для пользователя «Master»;

§         на закладке «Btrеive Security» выбрать «Database (DB authentication and authorization)».

5.       удалить всех пользователей, кроме пользователя по умолчанию. Для этого:

§         открыть список пользователей (группа «users») для БД, выделить всех пользователей и нажать <Del>.

6.       Запустить Jinnee, выполнить команду «Удалить пароль доступа к БД» (меню «База данных»).

7.       Запустить Jinnee, выбрать команду «Добавить пользователей в БД Pervasive» (меню «База данных»). Указать БД, из которой будем добавлять пользователей. В появившемся диалоге заполняем следующие поля:

§         «Название сервера» - указываем имя сервера, на котором расположена БД;

§         «Название базы данных» - указываем название БД, созданной в Pervasive.SQL, в которую будет заноситься обновленный список пользователей.

§         «Пароль» - вводим пароль пользователя «Master» для доступа к БД, указанной на предыдущем шаге.

8.       Обновить список прав на таблицы (если таковые назначались). Для этого:

§         запускаем Jinnee, в меню «База данных» выбираем команду «Восстановить права на таблицы».

После выполнения всех перечисленных выше операций, обновленная база готова к работе через сервер Pervasive.SQL.

Ошибка Pervasive.SQL с кодом X

Сообщение об ошибке Pervasive.SQL с кодом X означает, что сервер базы данных не смог выполнить требуемую операцию. Подробнее остановимся на описании наиболее часто встречающихся ошибок:

2: Ошибка ввода-вывода

Частое появление этой ошибки означает, скорее всего, разрушение индексов в указанной таблице.

Для исправления ошибки:

1.       переиндексируйте указанную таблицу;

2.       проверьте базу данных и исправьте имеющиеся ошибки.

3: Таблица не открыта

Как правило, появляется после какой-либо другой ошибки (например, 91 или 97), которую и нужно исправлять.

4: Запись не найдена

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

11: Указанное имя файла не верно

1.       Если используется Pervasive SQL V9, то следует учитывать его неспособность работать с русскими буквами в пути к файлам базы данных. Необходимо указать латинское название каталога с программой СБиС++.

2.       Проверьте, нет ли в каталоге с БД файла «~pvsw~.loc». Если есть, то в этом файле должен быть прописан компьютер, на котором запущен локальный Pervasive SQL Server, к которому и происходит общение при работе СБиС++.

3.       Проверьте настройки Pervasive SQL, запустив утилиту Pervasive.SQL Control Center:

§         параметр Embedded spaces (в разделе Application characteristics) должен принимать значение "on".

§         параметры Use Local MicroKernel Engine, Use Remote MicroKernel Engine должны принимать значения "on".

12: Указанный файл не найден

Эта ошибка может выдаваться, если из базы данных удалён файл данных (с расширением «mkd»), но парный ему файл описания (с расширением «tbh») остался.

Для исправления ошибки:

1.       проверьте, чтобы у клиента Pervasive SQL была включена опция Embedded Spaces (в разделе Application characteristics);

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

15: Приложение обнаружило ошибку ввода/вывода при создании предварительного образа

Проверьте свободное место на диске с базой данных.

18: Диск переполнен

Проверьте свободное место на диске с базой данных.

20: На рабочей станции не загружен менеджер btrieve

Как правило, или просто отсутствует клиентская часть, или она не запущена.

Для исправления ошибки:

1.       проверьте, установлен ли клиент Pervasive.SQL, и есть ли каталог c:\pvsw\bin (или соответствующий, если программа установлена в другой каталог) в переменной окружения PATH.

2.       если всё это есть, то проверьте, запущен ли сервер базы данных на компьютере, на котором находится указанный в параметрах базы данных каталог.

30: Заданный файл не является файлом данной версии Pervasive.SQL

Возможные причины:

Файл в каталоге базы данных был создан более новой версией Pervasive.SQL. Например, БД были созданы на сервере с Pervasive.SQL v9. Теперь производится попытка работы с ними на сервере с Pervasive.SQL v8. Этот код может также указывать на то, что первая страница файла разрушена.

Способы устранения:

1.       установите на сервер Pervasive.SQL с такой же или более высокой версией, чем та, на которой производится попытка работы с БД;

2.       переформатируйте БД на сервере, на котором были созданы файлы, в формат более ранней версии Pervasive.SQL, указав в настройках сервера в разделе Compatibility нужное значение параметра Create File Version  (в нашем примере, 8.х). После этого сконвертируйте БД, оставив существующий формат БД, либо в формате TBL.

46: Доступ к файлу запрещён

Возможно, у вас нет прав на работу с файлами в каталоге базы данных, либо какой-то из файлов помечен флагом «только чтение».

49: Неверен расширенный тип ключа

Для исправления ошибки:

1.       убедитесь, что на сервере стоит именно Pervasive.SQLBtrieve 6.1x СБиС++ не работает), и что в настройках сервера в разделе Compatibility значение параметра Create File Version не менее 7.х;

2.       если параметр принимает значение «6.x», то следует его изменить на большее и перезагрузить сервер.

51: Некорректное имя файла

Ошибка возникает, если для какого-то из файлов данных (с расширением «*.mkd») не подходит указанный пароль. Такая ситуация может возникнуть либо если этот файл был скопирован из другой базы данных, либо в результате сбоя при установке пароля на базу данных.

Для исправления ошибки:

1.      восстановите копию базы данных или обратитесь за помощью к разработчикам.

54: Указанная таблица физически разрушена

Скорее всего, физический сбой на диске или внезапное отключение сервера.

Для исправления ошибки:

1.       прежде всего, попробуйте перезагрузить сервер;

2.       если же это не помогло, то самое лучшее – восстановить резервную копию базы данных;

3.       если же это невозможно, то может помочь оптимизация этой таблицы. Но данные при этом могут быть повреждены, поэтому после этого обязательно нужно проверить базу данных.

59: Заданный файл уже существует

Причиной возникновения ошибки является удаление из базы данных файла данных (с расширением «*.tbh»).

Для исправления ошибки:

1.       восстановите архивную копии данного файла.

78: Тупиковая ситуация

Для исправления ошибки:

1.       попробуйте снять флаг «Дожидаться окончания чужих операций» в параметрах базы данных программы СБиС++ (задача «Администратор» - меню «Базы данных/ Параметры базы данных»);

2.       можно увеличить значение параметра «Number of Input/Output Threads»;

Если ошибка повторяется постоянно – обратитесь к разработчикам.

84: Требуемые данные блокированы другим пользователем

Для исправления ошибки:

1.       повторите операцию позже;

2.       если ошибка встречается часто, то следует установить флаг «Дожидаться окончания чужих операций» в параметрах базы данных;

3.       попробуйте также увеличить значение параметра «Number of Input/Output Threads». Если всё это не помогает – значит, не хватает мощности сервера.

85: Файл заблокирован

Ошибка возникает, если в сети у кого-то установлен еще один сервер Pervasive SQL, то, возможно, этот сервер успел захватить файлы БД. Перезагрузите все такие компьютеры и проверьте, запущен ли Pervasive SQL на основном сервере.

Ошибка так же может возникать в случае, когда сетевой диск подключен через ip-адрес. Необходимо использовать только имя сервера  и подключать сетевые диски через него.

91: Ошибка сервера

Возможны следующие варианты:

1.       при использовании Novell NetWare 4.11 установите 6-й патч;

2.       увеличьте параметр «Number Of Sessions» (число удалённых сеансов);

3.       неправильно настроена сеть, либо сервер неактивен;

4.       при использовании Novell NetWare возможно превышение максимального числа клиентов.

94: Ошибка доступа

Недостаточно прав на диск, на котором расположена база данных.

1.       Для работы программы, как минимум, необходимы права на чтение и запись файлов в каталоге базы данных. При первом запуске, создании и оптимизации базы данных необходимы права на создание файлов.

2.       Pervasive SQL версии 8 и выше не воспринимает в названиях файлов и каталогов русскую кодировку.

3.       Необходимо должным образом настроить работу службы Брандмауэр Windows (описано выше).

4.       При использовании Novell NetWare не разрешается доступ пользователям сервера с именами «ADMIN» и «SUPERVISOR».

95: Сессия не может больше продолжаться

В сети произошли какие-то ошибки.

Для исправления ошибки:

1.       проверьте надежность работы сети;

2.       увеличьте параметр «Number Of Sessions».

В последних версиях сервера этот параметр настраивается динамически, поэтому такая ошибка появляться не должна.

97: Буфер данных слишком мал

Для исправления ошибки:

1.       при использовании сервера с установленной системой MS Windows проверьте значение ключа реестра HKEY_LOCAL_MACHINE\System\currentControlSet\ Services\ NwInkIPX\ NetConfig\MaxPktSize – оно должно быть 576 (или 240 шестнадцатиричное).

161: Превышено количество клиентов сервера базы данных, указанное в лицензии

Срок действия временной лицензии истёк, необходимо приобрести постоянную.

170: Не указан логин пользователя для доступа к базе данных

При возникновении данной ошибки необходимо выполнить следующее:

1.       если служба Брандмауэр Windows включена, то нужно её соответствующим образом настроить (описано выше);

2.       если настройка службы Брандмауэр Windows не помогла, то выполнить некоторые корректировки параметра «SatEntry0» в реестре Windows (описано выше). Возможно, поможет его удаление из реестра, при перезагрузки Pervasive.SQL заново установит его значение по умолчанию;

3.       проверить, нет ли проблем в сети со службой DNS.

171: Неправильно указан пароль пользователя для доступа к базе данных

При возникновении данной ошибки необходимо выполнить следующее:

1.       если служба Брандмауэр Windows включена, то нужно её соответствующим образом настроить (описано выше);

2.       если настройка службы Брандмауэр Windows не помогла, то выполнить некоторые корректировки параметра «SatEntry0» в реестре Windows (описано выше). Возможно, поможет его удаление из реестра, при перезагрузки Pervasive.SQL заново установит его значение по умолчанию;

3.       проверить, нет ли проблем в сети со службой DNS.

198: Неправильно установлены параметры

Проверьте, правильно ли установлены значения параметров:

1.       в настройках клиента Pervasive.SQL: Use Local MicroKernel Engine=off; Use Remote MicroKernel Engine=on;

2.       на сервере Use Local MicroKernel Engine нужно поставить On в случае, если планируется запуск программы непосредственно на сервере.

3012: Недоступен локальный Pervasive.SQL

При возникновении данной ошибки необходимо выполнить следующее:

1.       если служба Брандмауэр Windows включена, то нужно её соответствующим образом настроить (описано выше);

2.       если настройка службы Брандмауэр Windows не помогла, то выполнить некоторые корректировки параметра «SatEntry0» в реестре Windows (описано выше).

3014: Недоступен Pervasive.SQL на сервере

При возникновении данной ошибки необходимо выполнить следующее:

1.       если служба Брандмауэр Windows включена, то нужно её соответствующим образом настроить (описано выше);

2.       проверьте, запущен ли Pervasive.SQL на сервере.

3103: Сервер не найден

Возможно, на сервере не запущен сам Pervasive SQL. Возможно также отсутствие общего сетевого протокола – смотрите описание ошибки 3105.

3105: Не найден общий для сервера и клиента сетевой протокол

Эта ошибка также может выдаваться в случае, если firewall на сервере или клиенте не разрешает соединение с сервером.

Для проверки можно на клиенте набрать

telnet имя_сервера 3351

Если появится сообщение об ошибке - надо искать firewall, если просто черный экран - проблема не в этом

Для исправления ошибки:

1.       Проверьте настройки в Pervasive Control Center параметра Communication Protocols. И на сервере и на клиенте должен быть указан (желательно один) правильный используемый сетевой протокол.

2.       Если на сервере установлено несколько сетевых плат, то следует также установить параметр TCP/IP Multihomed в On.

3.       Проверьте настройки программы Firewall, установленной на сервере или клиенте (программа может не разрешать соединение с сервером). Отключите порты. Для проверки можно на клиенте набрать:

telnet имя_сервера 3351

???

Если у вас появилась ошибка, которой нет в перечисленном списке, то попробуйте обратиться к документации на Pervasive. Если при этом окажется, что такой ошибки не могло быть, проверьте, входит ли пользователь в локальную группу «Опытные пользователи» или «Администраторы» (для MS Windows 2000).

Способы решения распространённых ошибок Pervasive.SQL

Настройка службы Брандмауэр

Многие ошибки в работе Pervasive.SQL возникают при работающей службе Брандмауэр Windows. Особенно это актуально для пользователей MS Windows XP SP2. Необходимо настроить должным образом работу этой службы или совсем отключить её. На панели управления откройте Брандмауэр Windows. На вкладке «Исключения» в списке программ и служб необходимо добавить два порта с номерами: 3351 и 1583. Чтобы отключить службу, откройте программу «Службы» (Пуск/ Панель управления/ Администрирование/ Службы) и у службы Брандмауэр Windows укажите тип запуска «Отключено».

С работой этой службы могут быть связаны следующие ошибки: 94, 170, 171, 3012, 3014.

Хочется отметить, что похожие проблемы могут возникать и при работе других подобных служб системы.

Настройка параметра <SatEntry0>

Зачастую для исправления той или иной ошибки, возникающей в работе сервера, требуется выполнять соответствующие корректировки параметров реестра Windows, например параметра <SatEntry0>. Для его корректировки следует выполнить ряд несложных действий:

1.       открываем в реестре ветку HKEY_LOCAL_MACHINE\ SOFTWARE\ Pervasive Software\ Communications Requester\ Version 9 (или другая версия)\ Settings:

Рис. 2- SEQ Рис. \* ARABIC 21 – Изменение параметра

2.       находим параметр <SatEntry0> со значением «,2,3,0,1,0» (в нашем случае это tensor-serv);

3.       заменяем значение 3 на 4, т.е. придаём вид «,2,4,0,1,0» (в нашем случае «tensor-serv,2,4,0,1,0»).

С настройкой этого параметра могут быть связаны следующие ошибки: 170, 171, 3012.

Программа медленно работает

Проверьте на сервере

1.       Не достигают ли какие-то параметры сервера Pervasive.SQL максимальных значений. Для этого запустите программу «Monitor», входящую в поставку Pervasive.SQL.

2.       Не включен ли аудит на сервере (для MS Windows NT/2000).

3.       Не запускается ли на сервере хранитель экрана (screen saver), антивирусная программа или какое-то приложение, например, комплекс СБиС++.

Проверьте на рабочей станции

1.       Не установлен ли антивирусный монитор.

2.       Не запущена ли постоянно программа, обслуживающая принтер (в частности замечено, что «родной» драйвер для Cannon сильно тормозит сетевую работу под MS Windows 95/98).

Аварийное завершение Pervasive.SQL

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