А. Шевелёв - DbfWebServer. Способ эффективной работы с таблицами DBFв среде Интернет стр 4.

Шрифт
Фон

Системные таблицы сервера

Основным постулатом системы является то, что весь исходный код хранится в базе данных. Исходный код заносится в виде блоков кода, совместимых с системой CLIPPER 5.3.

Чтобы разделить управление между различными программами реализациями информационных технологий ixBASE, используются следующие системные таблицы:

DBFHTM00. Используется CGI-скриптами HRB. EXE (Harbour), CLP. EXE (CLIPPER 5.3), ALS. EXE (Alaska). Скрипты работают под управлением WIN32. Для операционной системы UNIX скрипт находится в разработке, желающие могут скомпилировать его самостоятельно.

DBFRUN00. Используется программой IXBASE. EXE, созданной системой xHarbour. Работает под управлением WIN32 и WIN64.

DBFBLO00. Используется программой IXBASE. EXE (CLIPPER 5.3, FiveWin 1.95). Работает под управлением WIN32.

DBFMEN00. Таблица функциональных клавиш. Используется программой IXBASE. EXE (CLIPPER 5.3, FiveWin 1.95).

Все таблицы для вышеперечисленных программ находятся в директории

/ixb/sys/dfw/

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

./dbf/

Немного истории

Для программы IXBASE. exe (DOS) использовалась директория /ixb/sys/dbf/.

В связи с тем, что в идеологии системы ixBase произошли большие изменения, пришлось разделить таблицы базы данных на две группы: /DFW и /DBF.

Динамический загрузчик

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

первый вид  это текстовый файл dbfWebServer. txt;

второй вид  это список таблиц: SPIDBF00.dbf, SPIDBF10.dbf, SPIDBF20.dbf (рис. 2.1).


Таблица SPIDBF00.dbf содержит список наименований таблиц проекта.

Таблица SPIDBF10.dbf содержит список полей таблиц.

Таблица SPIDBF20.dbf содержит список ключей сортировок таблиц.



Рис. 2.1. Экранная форма результата запроса к серверу dbfWebServer

Порядок работы динамического загрузчика

Динамический загрузчик построен на обработке ошибки, возникающей при обращении к таблице, которой нет в рабочей области системы CLIPPER (xHarbour), код ошибки subCode = 1002.

КОНЕЦ ОЗНАКОМИТЕЛЬНОГО ОТРЫВКА

Эта ошибка возникает, как было сказано, при попытке обращения к таблице, которая ещё не открыта. Это может быть, например, в следущих конструкциях:

 SPIDBF00-> (dbGoTop ())

 dbSelectArea («SPIDBF10»)

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

При возникновении ошибки программа обрабатывает эту ситуацию следующим образом.

Сначала сканируется текстовый файл dbfWebServer. dbf. Если запрашиваемая таблица есть в списке этого файла, то она открывается с помощью функции ixOpen (cName). Имя этой таблицы заносится в массив arrDbfOpe. Если таблица отсутствует физически, то она сначала создаётся и затем открывается. Все необходимые атрибуты для этого случая должны находиться в списке в специальном формате, как приведено в файле dbfWebServer. dbf для определённых в нём таблиц.

Формат этого файла следующий.

Таблицы разделены специальной строкой из звёздочек 

*********************************************************

Первая строка раздела описывает саму таблицу: путь к таблице, имя таблицы, алиас таблицы, список полей таблицы.

Следующие строки представляют описание индексов таблицы.

Сколько индесов, столько строк (по одной строке на индекс).

Если требуемая таблица не найдена в текстовом файле, динамический загрузчик производит поиск в базе данных (таблице) SPIDBF00.dbf. Если поиск успешен, то он открывает запрашиваемую таблицу и заносит имя таблицы в массив активных таблиц arrDbfOpen.

Если массив активных таблиц переполняется, то первая таблица удаляется из массива и закрывается.

Размер массива задаётся в файле инициализации программы.

Текстовый файл для удаленного управления недоступен, поэтому список таблиц можно и следует хранить в проекте базы данных, который содержится в триаде таблиц SPIDBF00, SPIDBF10 и SPIDBF20 (Рис. 2.1).


Правило формирования наименований таблиц в системе ixBASE

Наименование таблиц формируется, как правило, из двух слов. Из каждого слова выбирается три буквы. Итоговое слово из шести букв дополняется порядковым номером из двух цифр.

SPIDBF00 ->

SPI  список

DBF  dbf таблиц

00  стартовый

(SPI+DBF+00) => SPIDBF00

Три таблицы, логически объединённые таким образом одним именем, образуют фолдер SPIDBF (00,10,20).

Глава 3. Управление сервером

Основные операции

Сервером можно управлять непосредственно из браузера. Основные операции управления сервером следующие: показать сервер (show), спрятать сервер (hide), закрыть программу (shutdown). Основные операции представлены на рис. 3.1. Эти операции выполняются с помощью стандартной функции WIN API из адресной строки браузера, например

 http://localhost:4180/ShowWindow(hWnd,5)  показать окно программы;

 http://localhost:4180/ShowWindow(hWnd,0)  спрятать окно программы;

 http://localhost:4180/sendMessage(hWnd,2,NIL,NIL)  закрыть программу.



Рис. 3.1. Экранная форма стартовой страницы dbf.html с элементами управления сервером dbfWebServer

Документация

Документация представлена тремя ссылками:

 Manuel of dbfWebServer;

Ваша оценка очень важна

0
Шрифт
Фон

Помогите Вашим друзьям узнать о библиотеке

Скачать книгу

Если нет возможности читать онлайн, скачайте книгу файлом для электронной книжки и читайте офлайн.

fb2.zip txt txt.zip rtf.zip a4.pdf a6.pdf mobi.prc epub ios.epub fb3