Объекты системы Miracle (часть V)
Базовые принципы при работе с базой данных.

Базовые принципы при работе с базой данных.

  Правило-01. “Мастер-таблица” может иметь неограниченное число “подчиненных” таблиц.
  Правило-02. Связи между таблицами создаются в момент проектирования структуры БД. И являются “проектными”, т.е их наличие не устанавливает автоматического вектора отношений.
  Правило-03. Связь между таблицами может быть активизирована в любом направлении. Активизация связей описывается на уровне программирования приложения.
  Правило-04. Набор данных (записей) в таблице определяется:

  • уровнем статуса таблиц;
  • наличием активных “мастеров”;
  • условиями SQL-предложения;
  • критериями выборки или SQL предложениями пользователя.

  Правило-05. Изменение набора данных (записей) в подчиненной таблице определяется:

  • изменением позиции в “мастер-таблице”:
    • при условии активной “синхронизации данных” (в подчиненной таблице);
    • при активизации команды в “мастер-таблице” - “синхронизация подчиненных курсоров”;
    • при выполнении выборок;

  Правило-06. Набор данных (записей) в таблице не изменяется:

  • SQL предложение соответствует предыдущему условию выборки;
  • Позиция в “мастер-таблице” не изменилась (при активной команде “синхронизации данных”).

  Правило-07. Доступ к данным (записям) в таблице при параллельной модификации другим приложением возможен:

  • при перечтении объекта БД (для вновь созданных или удаленных записях);
  • при осуществлении выборки (для вновь созданных или удаленных записях);
  • при чтении измененной записи.

  Правило-08. Доступ к новым записям в таблице возможен:

  • при перечтении объекта БД;
  • при осуществлении выборки;
  • при предоставлении нового набора данных в “подчиненной-таблице” в момент смены позиции в “мастер-таблице”.

  Правило-09. Исполнение SQL-предложения осуществляется, как и активизация сопутствующих механизмов, только в момент получения информации из таблицы или при применении команд “навигации”. До этого момента, система Miracle применяет механизмы оптимизации работы с сервером баз данных, и не пропускает задание на выполнение SQL-предложения. Т.е. при организации схемы SQL-предложение→Таблица, реальное осуществление выборки будет осуществлено только в момент работы с информацией.

Описание объектов базы данных
Элементы БД

База данных

  Компонент - “база данных” является постоянным элементом структуры базы данных. Данный компонент позволяет строить решения, основанные на использовании транзакции над группой действий применяемой ко всей базе данных.

Программирование компонента

  Компонент “База данных” всегда присутствует в проекте приложения, и от программиста не требуется каких либо дополнительных действий.

События

  • Транзакция завершена - событие сигнализирующее об успешном окончании (завершении уже начатой транзакции), что говорит о том, что все действия применяемой к различным объектам БД в рамках активной транзакции отразились на сервере базы данных.
  • Транзакция начата - событие, сигнализирующее о начале транзакции, что говорит о том, что все действия применяемые к объектам БД не будут отражены на сервере БД, до момента завершения транзакции, но будут доступны для пользователя ведущего транзакцию.
  • Транзакция прервана - событие, сигнализирующее о прерывании транзакции, что говорит о том, что все действия применяемые к объектам БД будут отменены и не будут отражены на сервере БД.
  • Транзакция уже начата - событие сигнализирующее о том, что в момент начала новой транзакции еще не завершена предыдущая транзакция.
Система не позволяет строить “вложенные” транзакции или вести несколько транзакций. В единицу времени приложение может иметь только одну активную транзакцию.

Реакции

  • Завершить транзакцию - команда, действие которой приводит к завершению начатой транзакции. Это в свою очередь приводит к отражению внесенных изменений в объектах базы данных на сервере БД.
  • Начать транзакцию - команда, действие которой приводит к началу транзакции. Все действия с объектами БД, производимые после данной команды, не будут отражены на сервере БД, пока не будет завершена.
  • Прервать транзакцию - команда, действие которой приводит к прерыванию активной транзакции. Это в свою очередь отменяет все действия с объектами БД совершенные в момент действия транзакции.

Связь по данным
Источники

  • Тип базы данных - источник возвращающих тип используемой базы данных указанной в файле IDAPI.CFG, закладка “Aliases”, секция “TYPE”.

Объекты базы данных (таблица)

  Структура объекта базы данных состоит из:

  1. Элемента “Навигатор”
  2. Заданных характеристик (полей), имеющих следующие типы:
    • Число целое небольшое
    • Число целое большое
    • Строка
    • Число
    • Дата
    • Большой объект
    • Связь с другим объектом (линк - поле)
    • Древовидная связь (линк-поле)
      • Поля из мастер - таблицы

Элемент “Навигатор”

  Элемент “навигатор” является основным механизмом по организации общего управления таблицей, активной записи. Именно через команды “навигатора” осуществляется навигация курсора, добавлении, или удаление записи, взаимодействие с другими таблицами и много другое.

Программирование компонента

  Для осуществления взаимодействия с необходимым объектом БД, и его характеристиками необходимо включить выбранную таблицу в проект приложения. Включение производиться через команды генератора приложений - разрешить поле.

События

  • SQL предложение пользователя снято - сообщение, сигнализирующее о том, что установленное SQL предложение пользователя снято. Текущее состояние выборки в таблице определяется условиями выборки и критериями выборки.
  • Включена автоматическая синхронизация с ведущей таблицей - событие, сигнализирующее об активизации механизма автоматической синхронизации набора предоставляемый данных в таблице по отношению к позиции в мастер- таблице.
  • Выборка по критериям прошла успешно - сообщение, сигнализирующее о том, что набор установленных критериев выборки и(или) установленное SQL предложение пользователя применено и влияет на текущее условия выборки данных в таблице.
  • Выключена автоматическая синхронизация с ведущей таблицей - событие, сигнализирующее об деактивизации механизма автоматической синхронизации набора предоставляемый данных в таблице по отношению к позиции в мастер- таблице.
  • Данных в новом наборе нет - событие сигнализирующее о итогах при применении механизма выборки, т.е. по заданным условиям выборки данных нет.
  • Изменился набор данных - событие сигнализирующее о итогах при применении механизма выборки, т.е. по заданным условиям выборки есть данные, выборка прошла успешно.
  • Нарушение условия уникальности - событие сигнализирующее о невозможности сохранения записи вследствие нарушения условий уникальности в одной из характеристик объекта.
  • Не все поля требующие заполнения заполнены - событие, сигнализирующее о невозможности сохранения записи в связи с отсутствием информации в одной или нескольких характеристиках объекта помеченных как “обязательные к заполнению”
  • Ошибка во время каскадного удаления - событие сигнализирующее о возникновении ошибки удаления записи во время применения механизма “каскадного удаления”. Что в свою очередь приводит к отмене всей серии “удаления” в подчиненных таблицах.
  • Ошибка восстановления позиции - событие сигнализирующее о невозможности восстановить последнюю позицию курсора. Это может быть связано с тем, что в текущей выборке нет позиционируемой записи.
  • Ошибка выборки по И - событие сигнализирующее о возникновении ошибки во время активизации процесса выборки по И. Возможно это связано с заданными критериями.
  • Ошибка выборки по ИЛИ - событие сигнализирующее о возникновении ошибки во время активизации процесса выборки по ИЛИ. Возможно, это связано с заданными критериями.
  • Ошибка выборки по критериям - событие сигнализирующее о возникновении ошибки во время активизации процесса выборки. Возможно, это связано с заданными критериями выборки и(или) синтаксисом SQL предложения пользователя.
  • Ошибка выборки по НЕ И - сообщение, сигнализирующее о возникновении ошибки во время применения выборки по НЕ И
  • Ошибка выборки по НЕ ИЛИ - сообщение, сигнализирующее о возникновении ошибки во время применения выборки по НЕ ИЛИ
  • Ошибка деактивизации критериев - сообщение, сигнализирующее об ошибке деактивизации заданных критериев выборки.
  • Ошибка дублирования записи - сообщение, сигнализирующее о не возможности произвести дублирование текущей записи. Данное сообщение может быть вызвано тем, что текущее положение в таблице не определено явно, либо происходит нарушение условий целостности информации в полях.
  • Ошибка замены - событие сигнализирующее о возникновении ошибки во время активизации процесса замены. Это может быть вызваны несколькими причинами, одна из них активизация замены, не существующей записи, т.е. не был организован “буфер новой записи”, команда - создать запись.
  • Ошибка осуществления выборки с SQL предложением - сообщение, сигнализирующее о невозможности произвести выборку по заданному условию.
  • Ошибка открытия записи на чтение - событие сигнализирующее об ошибке при активизации процесса открытия записи с условием - только чтение.
  • Ошибка открытия записи на чтение/запись - событие сигнализирующее об ошибке при активизации процесса открытия записи с условием - чтение/запись.
  • Ошибка перехода вверх - событие сигнализирующее о невозможности осуществить перемещение курсора на запись вверх по таблице. (С учетом текущего состояния выборки)
  • Ошибка перехода вниз - событие сигнализирующее о невозможности осуществить перемещение курсора на запись вниз по таблице. (С учетом текущего состояния выборки)
  • Ошибка перехода на первую запись - событие сигнализирующее о невозможности осуществить перемещение курсора на первую запись в таблице. (С учетом текущего состояния выборки)
  • Ошибка перехода на последнюю запись - событие сигнализирующее о невозможности осуществить перемещение курсора на последнюю запись в таблице. (С учетом текущего состояния выборки)
  • Ошибка перечитывания - событие, сигнализирующее о невозможности выполнения процесса перечитать объект базы данных, т.е. невозможно “освежить курсор БД”.
  • Ошибка позиционирования курсора по идентификатору записи - событие, сигнализирующее о не возможности позиционированная по указанному идентификатору записи. Это может быть вызвано тем, что данная запись не попадает в условия текущей выборки.
  • Ошибка позиционирования курсора по клону - событие сигнализирующее о возникновении ошибки при активизации процесса позиционирования курсора по клону. Это может быть вызвано отсутствием информации о номере курсора клона, по которому предполагалось осуществлять позиционирования, либо действующими условиями выборки не позволяющим установить курсор на нужную позицию.
  • Ошибка позиционирования на последнюю сохраненную запись - сообщение, сигнализирующее о не возможности установить курсор на последнюю сохраненную запись в таблице. Это может быть вызвано тем, что не была произведена процедура сохранения записи, либо последняя сохраненая запись находиться вне рамок текущей выборки.
  • Ошибка при синхронизации подчиненных курсоров - событие, сигнализирующее о возникновении ошибки при активизации процесса синхронизации подчиненных курсоров.
  • Ошибка при сохранении N записей - событие сигнализирующее о возникновении ошибки при активизации процесса сохранить N записей. Возможная причина - нарушение уникальности при сохранении группы записей с единым набором данных.
  • Ошибка при сохранении N записей - отсутствуют данные - событие сигнализирующее о возникновении ошибки при активизации процесса сохранить N записей. Причина ошибки - отсутствие информации для организации группы записей.
  • Ошибка смены позиции - событие сигнализирующее о возникновении ошибки при активизации любой из команд навигации по таблице. Т.е. данное сообщение является обобщением для всех случаев неудачного перемещения курсора.
  • Ошибка снятия SQL предложения - событие, сигнализирующее об ошибке снятия SQL предложения.
  • Ошибка создания записи - событие сигнализирующее о возникновении ошибки при активизации процесса создания записи.
  • Ошибка удаления - событие сигнализирующее о возникновении ошибки при активизации процесса удаления записи. Это может быть вызвано отсутствием записей в таблице.
  • Ошибка удаления всех записей - событие сигнализирующее о возникновении ошибки при активизации процесса удаления всех записей.
  • Ошибка удаления всех критериев - событие сигнализирующее о невозможности осуществить удаления всего набора критериев выборки.
  • Ошибка удаления всех признаков сортировки - событие сигнализирующее о невозможности осуществить удаления всего набора признаков сортировки.
  • Ошибка установки SQL предложения пользователя - событие, сигнализирующее ошибку установки SQL предложения пользователя. Это может быть вызвано отсутствием данных в источнике "SQL предложение пользователя".
  • Смена позиции - событие сигнализирующее об успешном перемещении курсора в таблице. Данное сообщение является обобщенным для группы команд активизирующих смену позиции.
  • Удаленное изменение данных - событие, сигнализирующее о том, что в другом приложении имеющего доступ к рассматриваемой таблице произведены действия по изменению ее содержимого. При этом приложение может быть запущено на любом другом компьютере в локальной сети. Следует отметить что сообщение - удаленное изменение данных не указывает на то, что изменился именно текущий набор данных, а лишь сигнализирует о произведенных изменениях в наборе информации. Ориентация на данное сообщение позволит организовывать необходимый интерфейс, предоставляющий возможность “освежить объект базы данных”, с целью предоставления реального набора информации.
  • Успешная деактивация критериев - событие, сигнализирующее об успешной деактивизации заданных критериев выборки.
  • Успешная замена - событие, сигнализирующее об успешном проведении процесса заменить запись..
  • Успешная синхронизация подчиненных курсоров - событие, сигнализирующее об успешном выполнении процедуры синхронизировать подчиненные курсоры, т.е. набор данных в подчиненных таблицах соответствует текущему курсору.
  • Успешная установка SQL предложения пользователя - сообщение, сигнализирующее об успешной установке заданного SQL предложения пользователя.
  • Успешное восстановление позиции - событие сигнализирующее о том, что выполнение процесса восстановить позицию (медленно) прошло успешно, и курсор находиться на искомой записи.

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

  • Успешное выполнение выборки по И - событие сигнализирующее об успешном выполнении процесса выборки по И.
  • Успешное выполнение выборки по ИЛИ - событие сигнализирующее об успешном выполнении процесса выборки по ИЛИ.
  • Успешное выполнение выборки по НЕ И - сообщение, об успешном выполнении условий выборки по схеме НЕ И.
  • Успешное выполнение выборки по НЕ ИЛИ - сообщение, об успешном выполнении условий выборки по схеме НЕ ИЛИ.
  • Успешное выполнение каскадного удаления - событие сигнализирующее об успешном выполнении процесса каскадного удаления. Т.е. произведено удаление как записи в мастер-таблице, так и всех записей в подчиненных- таблицах.
  • Успешное дублирование записи - сообщение. об успешном дублировании текущей записи.
  • Успешное осуществление выборки с SQL предложением - событие сигнализирующее об успешном выполнении процесса осуществить SQL-запрос. Т.е. произведена выборка по условиям SQL-предложения.
  • Успешное открытие записи на чтение - событие сигнализирующее об успешном выполнении процесса открыть запись на чтение. Таким образом осуществляется блокировка на внесение изменений в содержимое записей объекта базы данных.
  • Успешное открытие записи на чтение/запись - событие сигнализирующее об успешном выполнении процесса открыть запись для чтения/записи. Таким образом, предоставляется полный доступ по модификации содержимого записей в объекте базы данных.
  • Успешное перечитывание - событие, сигнализирующее об успешном выполнении процесса перечитывания объекта базы данных. Таким образом, произведено “освежение содержимого объекта базы данных”.
  • Успешное позиционирование курсора по идентификатору записи - событие, сигнализирующее об успешном позиционировании курсора на запись по указанному идентификатору.
  • Успешное позиционирование курсора по клону - событие сигнализирующее об успешном позиционировании, т.е. курсор в объекте БД установлен по заданной позиции в клоне объекта базы данных.
  • Успешное позиционирование на последнюю сохраненную запись - событие, сигнализирующее об успешном позиционировании на последнюю сохраненную запись.
  • Успешное снятие SQL предложения - сообщение, сигнализирующее об успешном снятии SQL предложении.
  • Успешное создание записи - событие сигнализирующее об успешной инициализации записи, т.е. организации буфера под новую запись.
  • Успешное сохранение N записей - событие сигнализирующее об успешном выполнении процесса сохранить N записей.
  • Успешное удаление - событие, сигнализирующее об успешном удалении записи.
  • Успешное удаление всех записей - событие сигнализирующее об успешном выполнении процесса удалить все записи.
  • Успешное удаление всех критериев - событие сигнализирующее об успешном удалении всех критериев выборки. Т.е. удаление критериев во всех характеристиках объекта базы данных.
  • Успешное удаление всех признаков сортировки - событие сигнализирующее об успешном удалении всех признаков сортировки. Те. удаление критериев сортировки во всех характеристиках объекта базы данных.
  • Успешный переход вверх - событие сигнализирующее об успешном перемещении курсора в объекте БД на одну запись вверх.
  • Успешный переход вниз - событие сигнализирующее об успешном перемещении курсора в объекте БД на одну запись вниз.
  • Успешный переход на первую запись - событие сигнализирующее об успешном перемещении курсора в объекте БД на первую запись.
  • Успешный переход на последнюю запись - событие сигнализирующее об успешном перемещении курсора в объекте БД на последнюю запись.

Реакции

  • Включить автоматическую синхронизацию с ведущей таблицей - команда, активизирующая автоматическую перевыборку в подчиненной таблице (в которой и применили данную команду), как только меняется позиция в мастер- таблице. Таким образом, происходит самостоятельная синхронизация предоставляемого набора данных в зависимости от текущего положения курсора в мастер-таблице. Следует отметить, что использование автоматической синхронизацией с ведущей таблицей приводит к потере времени, так как любое позиционирование влечет за собой выборку в подчиненно- таблице и т.д. Но в тоже время позволяет, гарантировано иметь обновленный набор информации в подчиненной таблице по отношению к новой позиции в мастер-таблице.
  • Восстановить позицию (медленно) - команда, позволяющая относительно корректный метод установки курсора на запись после проведения мероприятий по модификации значений в записи. Рассмотрим пример. Имеется следующая таблица и значения в ней:

    Фамилия Имя Отчество  
    Иванов Андрей Федорович  
    Андронова Мария Владимир ← текущая запись
    Гориков Денис Владимирович  

      Произведя изменение в значение характеристики “отчетов” с “Владимир” на “Владимировна”, после применения команда сохранить, позиция курсора может:

    1. Остаться на месте. (Если не используется сортировка или не установлены критерии выборки). В этом случае дополнительные методы навигации не нужны.
    2. Измениться. (Если новые значения изменили сортировку записей). В этом случае положение курсора изменилось. Для позиционирование его на модифицируемую запись, возможно, применить команду - восстановить позицию (медленно).
    3. Неопределенно. (Если установлены критерии выборки изменения не входит в эти границы.) В этом случае положение курсора измениться и попытка применить команду - восстановить позицию (медленно) не увенчается успехом.

      Так же следует отметить, что применение данной команды требует времени.
      Выбор необходимой методики поведения системы после модификации и(или) добавление новой записи или удаления остается за вами.

  • Выключить автоматическую синхронизацию с ведущей таблицей - команда, отменяющая автоматическую синхронизацию набора данных в подчиненной-таблице в зависимости от положения курсора в мастер-таблице.
  • Деактивировать критерии - команда, активизирующая процесс деактивизации всех установленных критериев.
  • Заменить запись - команда позволяющая произвести попытку сохранения внесенных значений в объект базы данных. Если команда применяется по отношению к текущей записи, то производится ее модификация. Если по отношению к вновь образованному “буферу”, (команда - создать запись), получаем новую запись в таблице.
  • Каскадное удаление - команда, активизирующая удаление активной записи, и всех записей в подчиненных таблицах. Следует отметить, что отношения между объектами БД должны быть активны.
  • Открыть запись для записи/чтения - данная команда видоизменяющая доступ к активной записи в режиме записи/чтения. По умолчанию доступ ко всем записям осуществляется в режиме записи/чтения.
  • Открыть запись для чтения - данная команда видоизменяет режим доступа к активной записи - только чтение.
  • Отменить создание записи - команда отменяющая создание новой записи (“буфера”).
  • Перейти на одну запись вверх - команда, активизирующая смещение позиции в объекте базы данных на одну запись вверх. Применение данной команды приводит к разрушению буфера под новую запись, если он был создан командой - создать запись.
  • Перейти на одну запись вниз - команда, активизирующая смещение позиции в объекте базы данных на одну запись вниз. Применение данной команды приводит к разрушению буфера под новую запись, если он был создан командой - создать запись.
  • Перейти на первую запись - команда, активизирующая смещение позиции в объекте базы данных, переход на первую запись. Применение данной команды приводит к разрушению буфера под новую запись, если он был создан командой - создать запись.
  • Перейти на последнюю запись - команда, активизирующая смещение позиции в объекте базы данных, переход на последнюю запись. Применение данной команды приводит к разрушению буфера под новую запись, если он был создан командой - создать запись.
  • Перечитать объект базы данных - команда активизирующая “освежение курсора объекта БД”, что позволяет синхронизировать предоставленный набор информации в таблице с изменениями внесенных из других приложений.
  • Позиционировать курсор по идентификатору записи - команда, позволяющая установить курсор на запись, согласно заданного идентификатора записи. Идентификатор задается как связь по данным-приемник. Получить номер записи возможно, из источника по данным "Идентификатор записи".
      Позиционировать на последнюю сохраненную запись - команда, позволяющая переместить курсор на последнюю сохраненную запись. Следует помнить, что если была задана сортировка по полям, то положение последней сохраненной записи может быть разным, по отношению к уже существующим записям в таблице. Поэтому попытка заполнения визуального компонента "с текущей позиции", может привести к не ожидаемому результату, когда выбор записи в визуальном объекте не будет соответствовать текущей записи в таблице БД. Это связано с особенностью работы команды визуального объекта "список".
  • Позиционировать на последнюю сохраненую запись - команда, активизирующая попытку перемещения курсора на последнюю сохраненную запись.
  • Позиционировать курсор по клону - команда позволяющая установить курсор в таблице на туже позицию, что и в таблице-клоне. Т.е. применение данной команды позволяет синхронизировать положение курсора по отношению положения курсора в одном из клонов объекта базы данных. Таблица-клон которая задает позицию определяется через информационный приемник “Номер курсора клона”. По умолчанию курсор клон с номером - 0.
  • Сделать выборку по И - команда активизирующая процесс выборки с объединением всех заданных критериев в характеристиках по “И”, т.е. составляемое SQL-предложение перечисляет все критерии как : <критерий N1>и <критерий N2> и <критерий N3>и т.д.
  • Сделать выборку по ИЛИ - команда активизирующая процесс выборки с объединением всех заданных критериев в характеристиках по “ИЛИ”, т.е. составляемое SQL-предложение перечисляет все критерии как : <критерий N1>или <критерий N2> или <критерий N3>и т.д.
  • Сделать выборку по критериям - команда, активизирующая процесс применения условий выборок по критериям и(или) SQL предложения пользователя. Следует помнить, что данная команда не устанавливает, правил отношений между критериями выборки (И; ИЛИ; НЕ И; НЕ ИЛИ;), а лишь актуализирует текущее требование. Поэтому, данная команда должна использоваться только после применения команды, задающей правила отношений между критериями. (Сделать выборку по И/ИЛИ/НЕ И/НЕ ИЛИ)
  • Сделать выборку по НЕ И - команда, активизирующая применение условий выборки по критериям и устанавливающая текущую схему отношений между ними.
  • Сделать выборку по НЕ ИЛИ - команда, активизирующая применение условий выборки по критериям и устанавливающая текущую схему отношений между ними.
  • Сделать выборку с SQL предложением - команда, активизирующая процесс выборки. Условие выборки задается в связи по данным-приемник: "SQL запрос"
  • Сдублировать запись - команда, позволяющая получить копию текущей записи.
  • Синхронизировать подчиненные курсоры - команда, активизирующая процесс синхронизации набора данных в подчиненных объектах базы данных по отношению к активной позиции. Команда единовременна, т.е. при перемещении в мастер-таблице синхронизация данных в подчиненных производится, не будет. (Это справедливо только в том случае, если у подчиненной таблице не включен режим автоматической синхронизации).
  • Снять SQL предложение - команда, активизирующая изменение состояния выборки таблицы, путем отмены установленного SQL предложения.
  • Снять SQL предложение пользователя - команда, активизирующая изменение состояния выборки таблицы, путем отмены установленного SQL предложения.
  • Создать запись - команда, производящая инициализацию записи, т.е. создание буфера под новую запись. При применении команд “сохранить запись” буфер трансформируется в запись ОБД. Применение команд навигации в таблице приводит к разрушению организованного буфера.
  • Сохранить N записей - команда, производящая подготовку и замену указанного количества записей однотипными значениями. Количество записей задается в источнике “Число добавляемых записей”. Если данное значение не указано, будет добавлена только одна запись.
  • Удалить все записи - команда, активизирующая удаление всех доступных записей в таблице. Т.е. записей имеющихся в выборке.
  • Удалить все критерии выборки - команда, производящая удаление всех критериев выборки заданных ранее.
  • Удалить все признаки сортировки - команда, производящая удаление всех признаков сортировки указанных ранее.
  • Удалить запись - команда, активизирующая удаление активной записи. Применение данной команды в объекте БД являющимся мастер-таблицей, может привести к нарушению информационной целостности системы, так как данные в других подчиненных-таблицах будут ссылаться на не существующую запись.
  • Установить SQL предложение пользователя - команда, инициализирующая условия выборки указанного как связь по данным: "SQL предложение пользователя". Следует помнить, что данная команда не приводит к активизации выборки. Для это следует использовать команды типа "Сделать выборку по…"

Связь по данным
Источники

  • Название - название таблицы, так как оно задано в конструкторе базы данных.
  • Номер таблицы - уникальный системный номер таблицы задаваемой автоматически при генерации нового объекта базы данных. Следует помнить что у клонов таблицы (копии объектов БД), номер таблицы будет одинаковый. Для точно различия используйте номер курсора. Пример: 27
  • Номер курсора - дополнительный идентификатор предоставляющий информацию о номере курсора. Использовать в отрыве от номера таблицы не имеет смысл, так как не несет в себе этой информации. Пример: 0
  • Число записей - число доступных записей. Следует помнить, что число записей предоставляется н епосредственно запросом к серверу базы данных, поэтому возможна ситуация когда имеющийся набор данных не соответствует полученному количеству записей. Это возможно в том случае когда произошло изменение в содержимом таблице, но не произведено прочтение объекта базы данных.
  • Статус таблицы - информация об уровне доступа заданного объекту базы данных. На данный момент существует 4 вида:
    1. Общедоступная 0
    2. Структура 1
    3. Узловая 2
    4. Пользовательская 3
  • Дата и время создания текущей записи - информация о дате и времени создания активной записи. Дата и время формируются на основании системного времени компьютера на момент формирования или модификации записи. Информация предоставляется в формате дата-время.
  • Условия выборки текущей записи - специализированная информация позволяющая организовывать на ее базе SQL-запрос с целью установки позиции курсора в другой копии таблицы находящейся в другом приложении.

      Наличие данной информации позволяет строить информационную систему в архитектуре клиент-сервер, где приложение, отвечающее за управление определенной информации, предоставляет условие выборки текущей записи (сервер). Получив данную информацию в другом приложении (клиент) можно спозиционировать курсор в рассматриваемой таблице для осуществления необходимый действий. Т.е. интерфейсное управление будет за серверным приложением, в клиентском же приложении будут осуществлять дальнейшие действия. Данный подход, возможно, использовать только в рамках одного компьютера.

    Рисунок 6 Пример организации клиент-серверного взаимодействия приложений.

  • Условие выборки последней сохраненной записи - информация, позволяющая осуществлять поиск последней сохраненной записи в таблице. Может быть использована как данные приемника "Идентификатор записи".
  • Идентификатор записи - информация о идентификаторе текущей записи. Может быть использована как данные приемника "Идентификатор записи".
  • Порядковый номер записи - информация о порядковом номере записи. Следует помнить, что понятие "номер записи" не имеет смысла в SQL базе данных. Однако с определенной долей вероятности данный номер может быть получен, но только в случае применения - следующих действий:
    1. Перейти на первую запись в таблице
    2. Осуществлять переход по таблие по одной записи.

    Любое действие по изменению позиции курсора через поиск записи, выборка и т.д., делает данный источник не надежным.

Приемники

  • Число добавляемых записей - приемник числа записей создаваемых по команде - сохранить N записей.
  • Номер курсора клона - приемник для указания необходимого номера курсора клона. Если этой связи нет, то он равен 0 (главная таблица).
  • SQL-запрос - приемник SQL-предложения, по которому будет осуществлен запрос к базе данных. В качестве источника может выступать такой объект как “выборка и сортировка” или объект базы данных предоставляющий “условие выборки текущей записи”.
  • SQL запрос пользователя - источник, позволяющий инициализировать SQL предложение пользователя. Следует помнить что пользователь может влиять только на WHERE часть запроса.<br>
    Для задания структуры предложения можно использовать компонент "Текстовый шаблон с поддержкой SQL"
  • Идентификатор записи - источник, позволяющий инициализировать идентификатор записи используемого для поиска записис, команда "Позиционировать курсор по идентификатору записи"

Элемент “Характеристика БД”

  Поле таблицы (характеристика БД), является базовым методом хранения информации с заданным типом. Через команды “характеристик” осуществляется управление значениями (информацией).

Программирование компонента

  Для осуществления взаимодействия с необходимой характеристикой БД, необходимо включить выбранное поле в проект приложения. Включение производиться через команды генератора приложений - разрешить поле.

События

  • Доступ для чтения и записи - сообщение сигнализирующее об предоставление доступа к записи в режиме чтение/запись. Появляется в момент изменения поля.
  • Доступ только для чтения - сообщение сигнализирующее об предоставление доступа к записи в режиме чтения. Появляется в момент изменения поля.
  • Невозможно получить данные о критерии - сообщение сигнализирующее о возникновении проблем в момент загрузки критериев выборки.
  • Несоответствие типов - сообщение, сигнализирующее о возникновении проблем в момент выполнения команд изменяющих содержимое поля.
  • Отсутствуют исходные данные -
  • Ошибка добавления критерия - сообщение сигнализирующее о возникновении проблем в момент загрузки критерия выборки.
  • Ошибка добавления поля в список сортировки - сообщение, сигнализирующее о возникновении проблем в момент выполнения команд связанные с добавлением поля в список сортировки.
  • Ошибка записи - сообщение сигнализирующее о возникновении проблем в момент выполнения команды “посчитат и записать”.
  • Ошибка при вычислении среднего значения - сообщение, сигнализирующее о возникновении ошибки в момент выполнения агрегированной операции извлечения данных.
  • Ошибка при поиске максимума - сообщение, сигнализирующее о возникновении ошибки в момент выполнения агрегированной операции извлечения данных.
  • Ошибка при поиске минимума - сообщение, сигнализирующее о возникновении ошибки в момент выполнения агрегированной операции извлечения данных.
  • Ошибка расчета - сообщение, сигнализирующее о возникновении ошибки расчета в алгоритме установленного как метод записи значений в поле БД.
  • Ошибка суммирования - сообщение, сигнализирующее о возникновении ошибки в момент выполнения агрегированной операции извлечения данных.
  • Ошибка удаления данных - сообщение, сигнализирующее о возникновении проблем в момент выполнения команды удаления данных в характеристике объекта базы данных.
  • Ошибка удаления критерия - сообщение сигнализирующее о возникновения проблем в момент выполнения команды удаления критерия выборки.
  • Ошибка удаления поля из списка сортировки - сообщение сигнализирующее в момент выполнения команды удаления поля из списка сортировки.
  • Ошибка чтения - сообщение, возникающее в момент извлечения данных из поля БД.
  • Попытка записи в поле (ТОЛЬКО ЧТЕНИЕ) - сообщение возникающее в момент выполнения команды приводящая к изменению содержимого поля БД.
  • При записи данные были обрезаны - сообщение, сигнализирующее о возникновении проблем в момент сохранения информации в поле БД при применении команд приводящих к изменению содержимого поля.
  • Пустое поле - сообщение, сигнализирующее об отсутствии информации в поле БД. Возникает в момент извлечения информации.
  • Ручной ввод не достающих данных - сообщение, возникающее в момент выполнения расчета алгоритма установленного, как правило, записи данных в поле БД.
  • Успешное выполнение вычисления среднего значения - сообщение, сигнализирующее об успешном предоставлении информации в момент извлечения данных.
  • Успешное выполнение поиска максимума - сообщение, сигнализирующее об успешном предоставлении информации в момент извлечения данных.
  • Успешное выполнение поиска минимума - сообщение, сигнализирующее об успешном предоставлении информации в момент извлечения данных.
  • Успешное добавление критерия - сообщение сигнализирующее об успешном добавлении критерия.
  • Успешное добавление поля в список сортировки - сообщение сигнализирующее об успешном выполнении команд добавления поля в список сортировки.
  • Успешное суммирование - сообщение, сигнализирующее об успешном предоставлении информации в момент извлечения данных.
  • Успешное удаление данных - сообщение, сигнализирующее об успешном удалении информации из поля БД.
  • Успешное удаление критерия - сообщение сигнализирующее об успешном удалении критерия из набора критериев выборки. Удаляется все загруженные критерии выборки.
  • Успешное удаление поля из списка сортировки - сообщение сигнализирующее об успешном удалении поля из списка сортировки.
  • Успешный пересчет данных - сообщение, сигнализирующее об успешном расчете алгоритма установленного в качестве правила обработки информации перед записью в поле БД.

      

  • Доступ для чтения/записи - сообщение сигнализирующее о режиме предоставления доступа к информации в поле БД.
  • Доступ для чтения - сообщение сигнализирующее о режиме предоставления доступа к информации в поле БД.
  • Невозможно осуществить обмен данных - сообщение, сигнализирующее о невозможности осуществления обмена данных.
  • Нет объекта источника данных -
  • Ошибка записи - сообщение, сигнализирующее о возникновении ошибки в момент применения команды изменяющей содержимое поля БД.
  • Ошибка удаления - сообщение сигнализирующее о возникновении ошибки в момент выполнения команды удаления содержимого поля БД.
  • Ошибка чтения - сообщение сигнализирующее о возникновении ошибки в момент извлечения информации из поля БД.
  • Успешная запись - сообщение сигнализирующее о успешном изменении содержимого поля БД.
  • Успешное удаление - сообщение сигнализирующее о успешном удалении информации из поля БД.

      

  • Активизирована связь 1-n - сообщение сигнализирующее об успешной активизации связи между таблицей по схеме 1-n. Где таблица имеющая “линк-поле” становится “подчиненной”.
  • Активизирована связь n-1 - сообщение сигнализирующее об успешной активизации связи между таблицами по схеме n-1. Где таблица имеющая “линк-поле” становиться ведущей по отношению к проектной “мастер-таблице”.
  • Активизирована связь с объединением n-1 - сообщение сигнализирующее о успешной активизации связи между таблицами по схеме n-1. Где таблица имеющая “линк-поле” становиться ведущей, а подчиненная таблица предоставляет доступ к информации ко всем записям, на которые имеются ссылки в ведомой таблице.
  • Активизирована связь с объединением 1-n - сообщение сигнализирующее о успешной активизации связи между таблицами по схеме 1-n. Где таблица имеющая “линк-поле” становиться ведомой, и предоставляет доступ к информации ко всем записям имеющим ссылки на все доступные записи в “мастер-таблице”.
  • Деактивизирована связь 1-n - сообщение, сигнализирующее об успешной деактивизации установленных отношений между таблицами.
  • Деактивизирована связь n-1 - сообщение, сигнализирующее об успешной деактивизации установленных отношений между таблицами.
  • Ошибка активизации связи 1-n - сообщение сигнализирующее о возникновении ошибки в момент активизации отношений между таблицами по схеме 1-n.
  • Ошибка активизации связи n-1 - сообщение сигнализирующее о возникновении ошибки в момент активизации отношений между таблицами по схеме n-1.
  • Ошибка активизации связи с объединением 1-n - сообщение сигнализирующее о возникновении ошибки в момент активизации отношений с объединением между таблицами по схеме 1-n.
  • Ошибка активизации связи с объединением n-1 - сообщение сигнализирующее о возникновении ошибки в момент активизации отношений с объединением между таблицами по схеме n-1.
  • Ошибка деактивизации связи 1-n - сообщение сигнализирующее о возникновении ошибки в момент деактивизации отношений между таблицами по схеме 1-n.
  • Ошибка деактивизации связи n-1 - сообщение сигнализирующее о возникновении ошибки в момент деактивизации отношений между таблицами по схеме n-1.
  • Ошибка связывания - сообщение, сигнализирующее о возникновении ошибки в момент выполнения команды устанавливающей ссылку на запись в “мастер-таблице”.
  • Ошибка связывания всех записей - сообщение, сигнализирующее о возникновении ошибки в момент выполнения команды связывающей все записи в “подчиненной” таблице с активной записью в “мастер-таблице”.
  • Успешное отвязывание - сообщение сигнализирующее о успешном удалении ссылки на запись в “мастер-таблице”.
  • Успешное связывание - сообщение сигнализирующее о успешном выполнении команды по сохранению ссылки на запись в “мастер-таблице”.
  • Успешное связывание всех записей - сообщение сигнализирующее о успешном выполнении команды по сохранению ссылки на запись в “мастер-таблице” во всех записях доступных в таблице.

      

  • Успешный переход в корень - сообщение сигнализирующее о успешном переходе на набор данных находящихся на “корневом” уровне таблицы.
  • Успешный переход на уровень вниз - сообщение сигнализирующее о успешном переходе на набор данных находящихся на более нижнем уровне.
  • Успешный переход на уровень вверх - сообщение сигнализирующее о успешном переходе на набор данных находящихся на более верхнем уровне.
  • Ошибка перехода в корень - сообщение сигнализирующего о возникновении ошибки при применении команды перехода на корневой уровень.
  • Ошибка перехода на уровень вниз - сообщение сигнализирующего о возникновении ошибки при применении команды перехода на более нижний уровень.
  • Ошибка перехода на уровень вверх - сообщение сигнализирующего о возникновении ошибки при применении команды перехода на более нижний уровень.

Реакции

  

  • Добавить поле в список сортировки (в порядке возрастания) - команда активизирующая добавление поля в список сортировки в порядке возрастания информации в доступных записях. Порядок списка сортировки определяется последовательностью его определения. Данная команда не приводит к активизации сортировки, а лишь определяет ее набор.
  • Добавить поле в список сортировки (в порядке убывания) - команда активизирующая добавление поля в список сортировки в порядке убывания информации в доступных записях. Порядок списка сортировки определяется последовательностью его определения. Данная команда не приводит к активизации сортировки, а лишь определяет ее набор.
  • Загрузить критерий выборки - команда активизирующая загрузку критерия выборки поля по точному совпадению. Данная команда не приводит к активизации выборки, а лишь определит условия выборки. Загрузка критерия осуществляется согласно установленного информационного канала.
  • Посчитать и записать - команда, активизирующая загрузку информации из установленного источника в поле БД.
  • Удалить данные - команда, активизирующая удаление информации из поля БД.
  • Удалить критерий выборки - команда активизирующая удаление всех критериев из списка выборки в поле БД.
  • Удалить поле из списка сортировки - команда удаляющая поле из списка сортировки.

      

  • Записать - команда, активизирующая запись информации из указанного источника в поле БД.
  • Удалить - команда, активизирующая удаление информации из поля БД.

      

  • Деактивизировать связь (1-n) - команда деактивизирующая отношения между таблицами.
  • Деактивизировать связь (n-1) - команда деактивизирующая отношения между таблицами.
  • Отвязать - команда, удаляющая ссылку на запись в “мастер-таблице”.
  • Связать - команда, организовывающая ссылку на активную запись в “мастер-таблице” для текущей записи в таблице.
  • Связать все что есть - команда организовывающая ссылку на активную запись в “мастер-таблице” для всех записей доступных в таблице.
  • Сделать таблицу ведомой мастером (1-n) - команда, активизирующая отношения между таблицами по схеме 1-n. Т.е. таблица содержащая “линк-поле” становится “подчиненной”, набор данных, в которой зависит от активной записи в “мастер-таблице”.
  • Сделать таблицу ведомой с объединением (1-n) - команда, активизирующая отношения между таблицами по схеме 1-n с объединением. Т.е. таблица содержащая “линк-поле” становится “подчиненной”, набор данных, в которой зависит от всего набора данных в “мастер-таблице”.
  • Сделать таблицу ведущей (n-1) - команда, активизирующая отношения между таблицами по схеме n-1. Т.е. таблица имеющая “линк-поле” становиться “мастером”, и набор данных в подчиненной таблице зависит от активной записи в ведомой таблице. При данной схеме в ведомой таблице может быть либо одна, либо не одной записи.
  • Сделать таблицу ведущей с объединением (n-1) - команда, активизирующая отношения между таблицами по схеме n-1 с объединением. Т.е. таблица имеющая “линк-поле” становиться “мастером”, и набор данных в подчиненной таблице зависит от набора записей в ведомой таблице.

      

  • Перейти в корень - команда, активизирующая переход на набор данных содержащихся на “корневом” уровне.
  • Перейти на уровень вниз - команда, активизирующая переход на набор данных на уровень вниз.
  • Перейти на уровень вверх - команда, активизирующая переход на набор данных на уровень вверх.

Связь по данным
Источники

  

  • Характеристика - предоставление информации содержащейся в поле БД.
  • Сумма - информация являющейся суммой всех доступных в таблице значений по полю.
  • Минимум - предоставление минимального значения по полю из всех доступных значений в таблице.
  • Среднее - предоставление среднего значения по полю из всех доступных значений в таблице.
  • Максимум - предоставление максимального значения по полю из всех доступных значений в таблице.

      

  • Условие выборки связанной записи - информация для выборки записи, на которую имеется ссылка.


Предыдущий раздел На начал документауции На оглавление Следующий раздел

©1995,1997,2000 НПФ ”И.В.А.”. Все права сохранены.
Название фирм и торговых марок используются только в качестве пояснения.