- •Лабораторные работы с базами данных лабораторная работа №5. Работа с базами данных
- •Экспорт xml данных во внешнюю бд
- •Импорт данных из бд
- •Импорт атрибутов, элементов и пропуски
- •Создание схемы бд
- •Создание xml схемы из бд ms Access
- •Создание xml схемы из бд ibm db2 (odbc)
- •Лабораторные работы по mapforce
- •Лабораторная работа № 6. Отображение схем и генерирование кода с помощью mapforce Установка среды отображения Создание компонента исходной схемы
- •Создание компонента целевой схемы
- •Отображение узлов схемы
- •Авто-отображение
- •Использование функций для отображения данных
- •Использование функций для объединения узлов
- •Отображение остальной части Личных данных
- •Фильтрация данных
- •Генерирование xslt 1.0/2.0 кода
- •Преобразование отчета личных расходов в отчет расходов компании
- •Множественные целевые схемы/документы
- •Создание второго целевого документа
- •Отфильтровывание данных non-travel
- •Определение множественных схем одинакового наименования для генерации кода
- •Генерирование программного кода для множественных целевых схем
- •Отображение множественных узлов-источников на один целевой узел
- •Создание отображений
- •Дублирование входных узлов
- •Лабораторная работа № 7. Отображение базы данных на схему
- •Создание компонента бд в MapForce
- •Отображение данных бд Вставка целевой схемы
- •Отображение данных бд на схему в MapForce
- •Создание кода Java и результирующего xml файла
- •Отображение множества иерархических таблиц на выходной xml файл
- •Отображение множества плоских таблиц на один выходной xml файл
- •Отображение и корневые элементы выходных документов
- •Фильтрация бд по дате
- •Рекомендации для использования компонента «filter»
- •Лабораторная работа № 8. Отображение схемы на базу данных
- •Установка xml для отображения на бд
- •Компоненты и отношения между таблицами
- •Действия бд: insert Вставка новой записи в таблицу
- •Вставка таблиц и связанных дочерних таблиц.
- •Действия бд: Update Первый пример
- •Второй пример
- •Комбинации Update if... С удалением дочерних данных
- •Действия бд: Delete
- •Установки ключей бд
- •Действия таблиц бд и обработка транзакций
Действия бд: Delete
Действие таблицы Delete if... используется для выборочного удаления из таблицы. Это достигается путем выбора определенных узлов/полей в компонентах источника и адресата, которые должны сравниваться. Определенное действие таблицы в этом случае будет выполняться по результатам этого сравнения.
Это действие не путайте с опцией «Delete data in child tables» доступной в диалоге Table action. Действие таблицы Delete if... касается только тех таблиц, для которых оно определено, на другие таблицы оно не действует.
Цель:
Удалить существующие записи из таблицы Person;
Вставить новые записи из XML файла.
Введите в отображение схему Altova_Hierarchical.xsd (и свяжите с altova-cmpy-extra.xml как входным XML-экземпляром);
Введите БД altova.mdb.
Выберите Connection | Auto Connect matching children.
Щелкните узел Person на XML источнике и перетащите коннектор на узел Person БД. Убедитесь, что вы связались с корневой таблицей. Все дочерние узлы отображаются автоматически.
Щелкните ПКМ на Person и выберите «Database Table Actions».
Щелкните по выпадающему списку диалога Table action и выберите Delete if....
Щелкните кнопку Append Action.
Это автоматически вставляет новую колонку Insert Rest действия таблицы.
PK XML и БД сравниваются оператором «equal». Если два ключа идентичны, то отображаемые поля таблицы Person удаляются. Как только это действие выполнено, начинается следующее действие, в нашем случае Insert Rest.
Действие Insert Rest вставляет все записи из источника XML файла, которые не имеют идентичных ключей в БД.
Щелкните по вкладке Output, чтобы увидеть псевдо-SQL код, выполняющий данное отображение.
Щелкните по значку (Run SQL-Script) на ПИ, чтобы запустить скрипт и обновить данные таблицы в БД. Если скрипт успешно выполняется, появляется сообщение. Щелкните ОК для подтверждения.
Откройте БД altova.mdb и дважды щелкните на Person, чтобы увидеть результат.
Таблица Person: условие Delete if... – true
Удаляются все записи, для которых ключи идентичны;
Если запись существует в БД, но в XML нет такой записи, то запись в БД не изменяется.
Таблица Person: условие Delete if... – false
PK в исходном и целевом компоненте не идентичны, т.е в источнике ключ существует, а в целевой таблице соответствующих PK нет, поэтому условие delete if... – false:
Переходит к выполнению операции следующей колонки Table Action: Insert Rest....
Вставляет новые записи Person в таблицу Person, если они существуют.
В данном случае добавляются две новые записи в отдел Administration, с PK 30 и 31, соответственно.
Установки ключей бд
При отображении на БД MapForce позволяет вам определять как PK будет обработан. Три варианта, приведенные ниже, становятся доступны при щелчке ПКМ на поле PK.
Установка PK предназначена для действия таблицы, определенной для этой таблицы. Например, при вставке записей PK следует установить в «Maximum number», чтобы записи автоматически добавлялись к существующим.
Входной значок доступен только при выбранном «Default handling». Это позволяет отображать данные источника непосредственно на поля БД.
Default handling
Эта установка стандарт для всех полей БД.
Входной значок существует, когда эта опция выбрана; это разрешает отображать данные непосредственно;
Значение, поставляемое узлом источника, используется как ключевое значение в БД.
Maximum number
Используйте эту установку, когда вы хотите вставить записи в БД.
Входной значок недоступен, когда вы выбираете эту опцию.
Состояние запросов SELECT выполняется для максимального значения PK. Затем это значение увеличивается на 1 и вставляется в новое поле.
Database generated value
Используйте эту установку, когда БД генерирует/использует функцию Identity, чтобы генерировать ключевые значения, и вы хотите вставлять новые записи.
Входной значок недоступен, когда вы выбираете эту опцию.
Выбор состояния inserts отображает данные в БД, запросы БД для ключевого значения генерируется функцией Identity, и заносится в поле ключа.
