Для успешного старта программы и дальнейшей продуктивной работы с таблицами программе требуется два служебных файла.
Один файл это файл инициализации, другой текстовый файл, содержащий минимальный перечень используемых таблиц. Второй файл можно назвать стартовым файлом проекта.
Файл инициализации содержит инициализацию системных переменных и набор настроек.
Файл проекта содержит в основном системные таблицы, которые требуются для работы сервера и входят в состав дистрибутива.
Файл инициализации
Запуск программы dbfWebServer. exe начинается с загрузки стартового файла dbfWebServer.BEG.
Инициализация программы (а это для нее ответственный момент) производится с помощью специального файла. Это делается для того, чтобы объявить и инициализировать глобальные и системные переменные вне программы, предоставив пользователю возможность тонкой настройки, если такая необходимость возникнет.
В файле инициализации устанавливаются предварительные настройки сервера и базы данных. Эти настройки можно редактировать или дополнять. Редактировать настройки можно с помощью любого редактора. Изменять что-либо желательно только после того, как вы хорошо изучили предмет и понимаете смысл и назначение установок. Начальное содержание этого файла следующее:
Файл dbfWebServer.BEG
Set (01,«OFF»),Set (03,4 ),Set(04,"dd.mm.yy»),Set (08,«ON»), Set (09,«ON»)
Set (11,«ON»),Set (14,10),Set (31,.F.),Set (32,«OFF»),Set (35,«ON»)
ixPUB («arrDbfRun», arRay (512,2))
ixPUB («arrDbfOpe», arRay (64))
ixPUB (»_DBF_», «STA»)
ixPUB («M», «001»)
ixPUB («ixPORT», 4180)
Список наиболее значимых переменных для программы, объявленных и инициализированных в стартовом файле программы, следующий:
arrDbfRun
массив, предназначенный для блоков кода, готовых к выполнению
arrDbfOpe
массив, предназначенный для хранения списка открытых файлов. Эта переменная является элементом системы динамического открытия файлов
ixPORT
номер порта, на котором программа слушает и принимает сообщения
Стартовый файл проекта
Файл, содержащий список таблиц, называется dbfWebServer. txt
Этот файл используется динамическим загрузчиком. Назначение этого файла и формат записей будут рассмотрены ниже. Здесь следует отметить только то, что сервер может стартовать без этого файла, но в дальнейшем обращение к таблицам без проекта таблиц в последующей работе будет затруднительно, можно использовать только простые страницы, без обращения к таблицам.
Привязка сервера
Иногда сервер dbfWebServer будет устанавливаться параллельно с другим сервером. У пользователя уже может действовать какая-либо система работы с данными. В этом случае установка требует нескольких манипуляций в ручном режиме.
Рассмотрим это на примере, когда на компьютере уже установлен комплекс из сервера Apache и базы данных MySQL.
Для сервера Apache и ряда других WEB серверов, как правило, создаётся рабочая директория, содержащая рабочие скрипты, с именем
\www\
В многопрофильной системе IxBase, в которую входит данный комплекс, используется следующий путь расположения компонент системы:
\ixb\bin\www\
В директории \ixb\bin\ находится сам сервер (программа) Apache. exe.
В директории \ixb\mysql\ находится база данных MySQL.
Рабочие файлы дистрибутива сервера dbfWebServer копируются в этом случае соответственно в директорию \ixb\bin\.
Содержимое директории \www\ сервера dbfWebServer копируется в директорию \ixb\bin\www\ уже установленного, например, сервера многопрофильной системы ixBase.
Глава 2. Особенности программирования
Главной особенностью является использование блоков кода. Синтаксис блоков кода несколько отличается от синтаксиса исходного кода программы в стиле xBASE. В блоках кода отсутствует возможность использования итераторов WHILE, FOR. Вместо этого используются итераторы по базе данных или массиву dbEval () и aEval (). В блоке кода функции объединяются в группы в явном или неявном виде, то есть представляют собой одну строку, в которой операторы разделены запятой, например
DBFRUN00-> (dbGoGop (),FieldGet (1))
Дополнительные функции
Сервер имеет свою специфику, поэтому разработан ряд дополнительных функций, предназначенных для более эффективной работы с сервером.
ixPUB (cArg1,value) объявление глобальной переменной. Первый аргумент задаёт имя переменной в виде строки. Второй аргумент функции значение, присваиваемое переменной. Значение может быть любого допустимого типа.
ixWhile (cKey, cValue) итератор, используемый в блоках кода. Первый строковый аргумент задаёт условие цикла, второй строковый аргумент определяет блок кода (функцию).
dbfRun (cName) функция, запускающая блок кода на выполнение. Может вызываться из блока кода. Работает совместно с таблицей DBFRUN00.
DbfOut (bLine, RelNam, RelVal, KeyNam, KeyVal, Filter, PrUni, MaxEle) функция, предназначенная для вывода списка из базы данных согласно заданным параметрам. Представляет собой альтернативу функции dbEval (), в некоторых случаях позволяет добиться лучших результатов.
_x_sta (cStr_1,cStr_2,cStr_3) функция, предназначенная для вывода сообщений в окне программы.
encode (cString) функция перекодировки данных, передаваемых по каналу Интернет.