ЗАДАНИЕ ПСЕВДОНИМОВ ДЛЯ БАЗЫ ДАННЫХ
|
Пользователю дается возможность задать псевдонимы для вводимой Базы Данных и задать структуру файлов для этой же Базы Данных, то есть расписать соответствие файлов Базы Данных и используемых панелей.
При задании псевдонимов используются следующие кнопки:
- "добавить в список" - добавить код или псевдоним в соответствующий список.
- "убрать из списка" - удаляет из соответствующего списка выбранный в окне ввода код или псевдоним, если удаляется псевдоним, то удаляются и приписанные ему коды.
- "стереть все" - удаляется весь список кодов или псевдонимов.
- "очистить в окне" - очищается окно ввода.
|
Как задать код:
- Выбираем файл БД Например, в БД существует файл a111222.dbf, в котором хранится информация о концентрациях для города с кодовым номером БД 111222. При выборе файла из списка таблиц БД автоматически в поле кода возникает его имя.
- В поле кода стираем из имени файла часть, относящуюся к коду города и расширение. В результате имя файла имеет вид: а
- Приписывем к имени файла используемую в нем панель (двойным нажатием на выбранной панели). В результате получаем: a(ConcPanel)
- Приписывем к имени файла его координатную составляющую. В результате получаем: a(ConcPanel)<Region>
- Добавляем этот код в список кодов.
|
Один и тот же файл может быть использован для нескольких различных панелей.
[в начало]
ЗАДАНИЕ ПАРАМЕТРОВ ПАНЕЛЕЙ БАЗЫ ДАННЫХ
Задание параметров одинаково по своей идее для всех панелей и выполнено
в форме записной книжки.
ФОРМАТ
|
Если возникает необходимость уточнения формата или уникальности координаты
(подразумевается уникальность значения координаты в базе данных), то нужно
нажать на соответствующую строку в таблице. Следует обратить внимание на
формат координат "РЕГИОН", "ВРЕМЯ" и "ГРУППА". Если одна из этих координат была выбрана
для уточнения формата, то на форме возникнет дополнительная кнопка
. При
нажатии на нее можно уточнить представление
пространственной координаты, а также форму представления
времени для координат и для
Базы Данных и форму задания пола и возраста для координаты "ГРУППА".
Указание типа кодировки в таблицах базы данных нужно для корректного переноса данных во внутренний формат. (Примеры и результаты можно посмотреть здесь.)
|
[в начало]
ЦИКЛЫ
|
Сначала необходимо установить последовательность циклов обработки координат. Для этого необходимо координаты из списка перенести в соответствующие циклам поля на схеме. Если Вас устраивает порядок следования координат в списке, то возможно перенести список целиком. В противном случае можно переносить по одной выбранной координате. Если полученный порядок не понравился, то можно перенести координаты со схемы обратно в список или все сразу или по одной. По мере заполнения полей схемы становятся доступными кнопки выбора типа цикла. Цикл может быть 4 типов:
- SQL-запрос
- поиск в Базе Данных
- поиск в Базе Данных по ключу (с использованием индексированных полей)
- простой перебор по значению координаты
|
Формирование SQL-запроса и поиск в базе данных происходит по общей схеме:
При определении панели в список координат автоматически заносятся доступные координаты. При открытии файла БД в список полей и индексов заносятся поля и индексы открытой БД или формируется шапка SQL-запроса. Нужно сформировать соответствие между полями БД и координатами панели и дописать, в случае необходимости, SQL-запрос.
[в начало]
Пример
Есть БД с таблицей KODBMAIN.DBF, в которой в поле KBOL записаны коды заболеваний, а в поле NAME занесены названия загрязнителей, соответствующие этим заболеваниям.
Необходимо для каждого загрязнителя считать все соответствующие ему заболевания.
- Открываем таблицу БД (кнопка "Открыть"), просмотреть таблицу можно по кнопке "Просмотр", если таблица не устраивает, то ее можно закрыть по нажатию кнопки "Закрыть";
- После открытия таблицы автоматически высвечиваются Поля базы данных, соответствующей ей и в поле SQL-запроса заносится первая строка "SELECT * FROM KODBMAIN WHERE ";
- Устанавливаем соответствие полей БД и координат: выбираем нужную координату (в нашем случае Pollutant - загрязнитель) и дважды нажимаем на нее. Координата дописывается в текст запроса. Вибираем знак "=" из списка SQL-разделителей, также дважды нажимаем на него. Аналогично, выбираем поле БД, по которому будет производится отбор (в нашем случае NAME). Текст запроса сформирован.
- Определяем поле, данные из которого будут считываться в программу. В нашем случае это KBOL. Однократным нажатием выделяем в списке полей "KBOL", по нажатию правой кнопки в выпадающем списке выбираем "Выбрать как поле поиска". Также однократным нажатием выделяем в списке координат - "Pollutant". По нажатию правой кноки в выпадающем спике выбираем "Установить соответствие". Осталось определить тип поля в БД (как опредить см ниже). Для этого дважды нажимаем на соответствующее значение в списке "Тип координаты".
Все!!! Можно нажимать "ОК".
Далее программа попросит запомнить введенные данные под каким-либо именем (модель). Это необходимо для дальнейшего считывания результатов из баз данных.
Более подробное описание алгоритма подключения новой базы данных можно посмотреть в этом файлефайле.
Замечание. Иногда бывают сложные случаи в кодировке заголовков полей БД. Например, в заголовок поля БД одновременно занесен и год с месяцем и код района города. В этом случае, при задании формата переменной (см выше) можно указать соответствующую разбивку переменной на части (то есть дата в БД записана как год и месяц, а территория - как город и район). В этом случае в п. 4 примера последовательность действий следующая: поле из БД выбираем также, а вместо одной координаты используем несколько и в выпадающем меню выбираем "Сложное соответствие".
[в начало]
СООТВЕТСТВИЕ МЕЖДУ ПОЛЯМИ БАЗЫ ДАННЫХ И КООРДИНАТАМИ
Список в котором хранятся поля БД, обрабатываемые программой, соответствующие им координаты и тип этих координат, формируется следующим образом:
- Сначала в список заносятся поля БД (выбирается поле и во всплывающем меню выбираем пункт "Выбрать как поле поиска").
- Выбираем нужную строку в списке соответствия и координату в списке координат. Из всплывающего меню выбираем пункт "Установить соответствие".
- Тип координаты устанавливается в последнюю очередь двойным нажатием на соответствующем элементе. До этого в списке соответствия должна быть выбрана необходимая строка.
Тип координаты определяется следующим образом: если значения какой-либо координаты являются заголовками полей таблицы базы данных, то это 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
Тип индекса | Paradox | dBase |
CaseInsensitive | + | |
Descending | + | + |
Primary | + | |
Unique | | + |
[в начало]
[Главная]