ПОДКЛЮЧЕНИЕ НОВОЙ БАЗЫ ДАННЫХ
Задание псевдонимов для базы данных
Задание параметров для различных панелей базы данных
Формат
Циклы
Соответствие между полями базы данных и координатами
Индексы, поддерживаемые СУБД Paradox и dBase
Пример файла установок

ЗАДАНИЕ ПСЕВДОНИМОВ ДЛЯ БАЗЫ ДАННЫХ
Пользователю дается возможность задать псевдонимы для вводимой Базы Данных и задать структуру файлов для этой же Базы Данных, то есть расписать соответствие файлов Базы Данных и используемых панелей.
При задании псевдонимов используются следующие кнопки:
"добавить в список" - добавить код или псевдоним в соответствующий список.
"убрать из списка" - удаляет из соответствующего списка выбранный в окне ввода код или псевдоним, если удаляется псевдоним, то удаляются и приписанные ему коды.
"стереть все" - удаляется весь список кодов или псевдонимов.
"очистить в окне" - очищается окно ввода.
Как задать код:
  1. Выбираем файл БД Например, в БД существует файл a111222.dbf, в котором хранится информация о концентрациях для города с кодовым номером БД 111222. При выборе файла из списка таблиц БД автоматически в поле кода возникает его имя.
  2. В поле кода стираем из имени файла часть, относящуюся к коду города и расширение. В результате имя файла имеет вид: а
  3. Приписывем к имени файла используемую в нем панель (двойным нажатием на выбранной панели). В результате получаем: a(ConcPanel)
  4. Приписывем к имени файла его координатную составляющую. В результате получаем: a(ConcPanel)<Region>
  5. Добавляем этот код в список кодов.
Один и тот же файл может быть использован для нескольких различных панелей. [в начало]
ЗАДАНИЕ ПАРАМЕТРОВ ПАНЕЛЕЙ БАЗЫ ДАННЫХ
Задание параметров одинаково по своей идее для всех панелей и выполнено в форме записной книжки.
ФОРМАТ
Если возникает необходимость уточнения формата или уникальности координаты (подразумевается уникальность значения координаты в базе данных), то нужно нажать на соответствующую строку в таблице. Следует обратить внимание на формат координат "РЕГИОН", "ВРЕМЯ" и "ГРУППА". Если одна из этих координат была выбрана для уточнения формата, то на форме возникнет дополнительная кнопка . При нажатии на нее можно уточнить представление пространственной координаты, а также форму представления времени для координат и для Базы Данных и форму задания пола и возраста для координаты "ГРУППА".
Указание типа кодировки в таблицах базы данных нужно для корректного переноса данных во внутренний формат. (Примеры и результаты можно посмотреть здесь.)
[в начало]
ЦИКЛЫ
PanelLoops.gif - 10kb Сначала необходимо установить последовательность циклов обработки координат. Для этого необходимо координаты из списка перенести в соответствующие циклам поля на схеме. Если Вас устраивает порядок следования координат в списке, то возможно перенести список целиком. В противном случае можно переносить по одной выбранной координате. Если полученный порядок не понравился, то можно перенести координаты со схемы обратно в список или все сразу или по одной. По мере заполнения полей схемы становятся доступными кнопки выбора типа цикла. Цикл может быть 4 типов:
  1. SQL-запрос
  2. поиск в Базе Данных
  3. поиск в Базе Данных по ключу (с использованием индексированных полей)
  4. простой перебор по значению координаты
Формирование SQL-запроса и поиск в базе данных происходит по общей схеме:
При определении панели в список координат автоматически заносятся доступные координаты. При открытии файла БД в список полей и индексов заносятся поля и индексы открытой БД или формируется шапка SQL-запроса. Нужно сформировать соответствие между полями БД и координатами панели и дописать, в случае необходимости, SQL-запрос. [в начало]
Пример

Есть БД с таблицей KODBMAIN.DBF, в которой в поле KBOL записаны коды заболеваний, а в поле NAME занесены названия загрязнителей, соответствующие этим заболеваниям.
Необходимо для каждого загрязнителя считать все соответствующие ему заболевания.
  1. Открываем таблицу БД (кнопка "Открыть"), просмотреть таблицу можно по кнопке "Просмотр", если таблица не устраивает, то ее можно закрыть по нажатию кнопки "Закрыть";
  2. После открытия таблицы автоматически высвечиваются Поля базы данных, соответствующей ей и в поле SQL-запроса заносится первая строка "SELECT * FROM KODBMAIN WHERE ";
  3. Устанавливаем соответствие полей БД и координат: выбираем нужную координату (в нашем случае Pollutant - загрязнитель) и дважды нажимаем на нее. Координата дописывается в текст запроса. Вибираем знак "=" из списка SQL-разделителей, также дважды нажимаем на него. Аналогично, выбираем поле БД, по которому будет производится отбор (в нашем случае NAME). Текст запроса сформирован.
  4. Определяем поле, данные из которого будут считываться в программу. В нашем случае это KBOL. Однократным нажатием выделяем в списке полей "KBOL", по нажатию правой кнопки в выпадающем списке выбираем "Выбрать как поле поиска". Также однократным нажатием выделяем в списке координат - "Pollutant". По нажатию правой кноки в выпадающем спике выбираем "Установить соответствие". Осталось определить тип поля в БД (как опредить см ниже). Для этого дважды нажимаем на соответствующее значение в списке "Тип координаты".
Все!!! Можно нажимать "ОК".
Далее программа попросит запомнить введенные данные под каким-либо именем (модель). Это необходимо для дальнейшего считывания результатов из баз данных.
Более подробное описание алгоритма подключения новой базы данных можно посмотреть в этом файлефайле.
Замечание. Иногда бывают сложные случаи в кодировке заголовков полей БД. Например, в заголовок поля БД одновременно занесен и год с месяцем и код района города. В этом случае, при задании формата переменной (см выше) можно указать соответствующую разбивку переменной на части (то есть дата в БД записана как год и месяц, а территория - как город и район). В этом случае в п. 4 примера последовательность действий следующая: поле из БД выбираем также, а вместо одной координаты используем несколько и в выпадающем меню выбираем "Сложное соответствие".

[в начало]
СООТВЕТСТВИЕ МЕЖДУ ПОЛЯМИ БАЗЫ ДАННЫХ И КООРДИНАТАМИ
Список в котором хранятся поля БД, обрабатываемые программой, соответствующие им координаты и тип этих координат, формируется следующим образом:
  1. Сначала в список заносятся поля БД (выбирается поле и во всплывающем меню выбираем пункт "Выбрать как поле поиска").
  2. Выбираем нужную строку в списке соответствия и координату в списке координат. Из всплывающего меню выбираем пункт "Установить соответствие".
  3. Тип координаты устанавливается в последнюю очередь двойным нажатием на соответствующем элементе. До этого в списке соответствия должна быть выбрана необходимая строка.
    Тип координаты определяется следующим образом: если значения какой-либо координаты являются заголовками полей таблицы базы данных, то это TITLE-координата, если же - они являются значениями полей, то это VALUE-координата. Result-координата типа не имеет.
    На рисунке:
    красным показано поле типа Value,
    зеленым - TITLE
    и желтым RESULT-поле
Если какая-либо строка в списке соответствия не устраивает, то можно ее удалить, выбрав из всплывающего меню пункт "Убрать из списка". Если в списке полей присутствуют поля с кодами координат в заголовке и они должны быть обработаны программой для получения значения из этих столбцов, то не обязательно перечислять их ВСЕ в списке соответствия, достаточно двух-трех. Программа поймет что там должны стоять коды. В списке координат возникает дополнительный элемент "РЕЗУЛЬТАТ". Он используется, если необходимо результаты брать из какого-либо поля БД, имя которого не совпадает, ни с одним из кодов координат (и этот факт известен заранее).
[в начало]
ПРИНЦИП ПОСТРОЕНИЯ SQL-ЗАПРОСА
При выборе таблицы БД в SQL-запросе автоматически добавляется:

SELECT * FROM <имя таблицы БД без расширения> WHERE
дальнейшую часть запроса должен дописать пользователь. Например, в Базе Данных записаны таблицы с концентрациями веществ по четырем районам sp1-sp4. Коды веществ хранятся в поле таблиц KOD_ZV. Тогда SQL-запрос будет иметь следующий вид:

SELECT * FROM sp:Region WHERE kod_zv = :Pollutant
Region, Pollutant - координаты территория и загрязнитель, соответственно.
Может возникнуть ситуация, при которой координата в SQL-запросе должна быть записана как группа значений <Начальное_значение>-<Конечное_значение>, тогда в SQL-запросе пишем как в предыдущем случае. Программа автоматически сформирует необходимый SQL-запрос в виде:
<FieldDB> >= :<CoordBegin> and <FieldDB> <= :<CoordEnd>
<FieldDB> - Имя поля БД.
<CoordBegin>, <CoordEnd> - Начальное и конечное значения в группе координат, соответственно.
Может возникнуть и такая ситуация, когда при формировании SQL-запроса нужно пропустить какие-либо значения координат в полученной выборке, тогда формируем список отрицанияNoneList с этими координатами в виде:
-(Значение1,...,ЗначениеK)
и записываем этот список в самое начало запроса на отдельную строку.
Например, в выше рассмотренном запросе не нужно рассматривать поля VET_N и VET_S, тогда SQL-запрос будет иметь вид:
-(VET_N,VET_S) SELECT * FROM sp:Region WHERE KOD_ZV = :Pollutant
Замечание: Список отрицания введен только для настоящей программы. В классическом SQL-запросе такой возможности нет.
[в начало]


ИНДЕКСЫ, ПОДДЕРЖИВАЕМЫЕ СУБД PARADOX И DBASE
Тип индексаParadoxdBase
CaseInsensitive+ 
Descending++
Primary+ 
Unique +
[в начало]
[Главная]