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

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 2 3 4 5 6 7 8 9 10 11

– 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;

– Manuel of HTML4;

– xHarbour functions.

ссылка «Manuel of dbfWebServer» представляет данный вариант документа в электронном виде.

ссылка «Manuel of HTML4» переводит пользователя в документацию для разметки текста в среде Интернет HTML4 на русском языке в оригинальном представлении.

по ссылке «xHarbour functions» осуществляется переход к информационному блоку, который предоставляет доступ к документации xHarbour относительно функции в файловом виде.

Редактирование

Режим редактирования предназначен для работы со скриптами на расстоянии. Скрипты хранятся в виде файлов типа *.html. Эти файлы можно редактировать обычным редактором.

Другой способ редактирования этих файлов предлагается осуществлять через интерфейс системы. Переход к этому режиму работы находится по ссылке «HTML editor».

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

/html/*.html

Количество записей в списке регулируется с помощью элементов управления « – » и «++». Нажимая тот или иной элемент, можно добиться токого количества записей в списке, которое наилучшим образом соответствует размеру зоны вывода.

Размер поля редактирования регулируется элементами управления по вертикали « – x++» и по горизонтали « – y++».

Сохранить введённые значения можно, нажав кнопку, на которой стоит знак «плюс».

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

Запросы к серверу

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

Здесь необходимо напомнить, что запросы к серверу строятся в виде блоков кода. Это обусловлено тем, что используется СУБД CLIPPER-xHarbour, которая ориентирована в данном случае на работу с блоками кода.

Например, следующий запрос к серверу, использующий свойства блока кода, будет выглядеть следующим образом:

src="http://localhost:4180/cb:='<table width=100%>», i:=1,DBFRUN00-> (dbgotop (), ixWhile (»! eof ()», ’cb+= [<tr> <td>] + str (i) + [<td>] +FieldGet (1) + [<td>] +FieldGet (2) + [<td width=100%>] + STRTRAN (FieldGet (3), [<], []),dbskip (),i++»)), cb»

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

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

http:// localhost:4180/ (123+4) /2

ответом будет вычисленный результат введённого математического выражения.

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

К серверу можно обращаться из скриптов, которые хранятся в файлах типа *.html.

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

Рис. 3.2. Экранная форма запроса к таблице DBFRUN00, созданная с помощью скрипта dbfcodeblock.html

Рис. 3.3. Экранная форма запроса к таблице DBFRUN00, созданная с помощью скрипта PHP и базы данных MySQL

После нажатия кнопки «плюс» [+], которая отображена на экранной форме, представленной выше, соответствующий PHP-скрипт получает значения переменных $m, $id, $txt из пользовательской формы, как показано ниже, и переносит полученные значения в базу данных MySQL и таблицу DBFRUN00.dbf.

PHP-скрипт

$h=«localhost»;

$p=4180;

$page="http://".$h."/ixbase/e.php";

$sp=«ix=dbfrun00.rcve&naiblo=$m&alikey=$id&valblo=». urlencode (trim ($txt));

$np=strlen ($sp);

$fp=fsockopen ($h,$p,$errno,$errstr,10);

if (!$fp) {

echo «I can’t connect to $h»;

} else {

fputs ($fp,«POST $page HTTP/1.0

Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, application/x-icq, */*

Content-Type: application/x-www-form-urlencoded

User-Agent: Mozilla/4.0 (compatible; MSIE 5.0; Windows 98)

Accept: */*

Referer: http://$h/

Host: $h

Content-Length:». $np.»

Pragma: no-cache

«.$sp);

$reply=«»;

while (!feof ($fp)) $reply.=fgets ($fp,256); fclose ($fp);

echo "$reply»;

Примечание. Запросы к серверу из HTML-скриптов передаются с помощью метода GET или POST.

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

Управляемые списки

Основной задачей создания динамических страниц для наших задач при помощи таблиц является формирование управляемых списков. На это следует обратить особое внимание.

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

Данное общее описание более потробно будет представлено в разделе «Спецификации интерфейса списков v.1.0».

Блоки кода

Отличительной особенностью сервера является то, что используются блоки кода. Это обусловлено тем, что программа создана на платформе CLIPPER – xHarbour. Прежде всего, xHarbour – это виртуальная машина (VM). Такой подход уже использовался в системе управления базами данных (СУБД) CLIPPER, используется в JAVA.

В отличие от виртуальной машины JAVA, которая устанавливается на компьютере клиента и выполняет скрипты, полученные с сервера, виртуальная машина xHarbour работает на стороне сервера и выполняет блоки кода, посылаемые клиентом.

1 2 3 4 5 6 7 8 9 10 11
На этой странице вы можете бесплатно читать книгу DbfWebServer. Способ эффективной работы с таблицами DBFв среде Интернет - А. Шевелёв бесплатно.
Похожие на DbfWebServer. Способ эффективной работы с таблицами DBFв среде Интернет - А. Шевелёв книги

Оставить комментарий