Выбор режима чтения
В методе READ-XML, когда у вас уже есть существующие данные в ProDataSet, очень важен параметр read-mode. Параметр read-mode используется для указания способа загрузки новых данных в ProDataSet. Различные режимы чтения отличаются тем, как AVM обрабатывает возможные повторяющиеся записи.
Если ProDataSet пуст, то AVM заполняет временную таблицу без проверки наличия повторяющихся записей по умолчанию. В этом случае режим чтения не имеет никакого эффекта, так как не может быть никаких конфликтов повторяющихся ключей.
Режимы чтения для метода READ-XML аналогичны режимам метода FILL для ProDataSet:
- Метод FILL заполняет ProDataSet данными из базы данных OpenEdge.
- Метод READ-XML заполняет ProDataSet данными из XML.
В обоих случаях вы должны выбрать способ заполнения ProDataSet. Когда вы читаете данные XML, которые уже существуют в ProDataSet, с помощью параметра read-mode вы должны контролировать как AVM будет обрабатывать записи с повторяющимися уникальными ключами. В следующей таблице представлены возможные режимы и значения для параметра read-mode.
Режим чтения |
Назначение |
EMPTY | Очищает содержимое ProDataSet перед загрузкой данных из XML-документа. |
APPEND | Добавляет новые записи к существующим записям, не проводя никаких сравнений. Если запись из XML-документа уже существует в ProDataSet, это приводит к конфликту уникальных ключей. В этом случае метод генерирует сообщение об ошибке и возвращает FALSE. |
MERGE (по умолчанию) |
Объединяет новые записи с существующими записями в таблице. Если существует конфликт уникальных ключей, то AVM сохраняет существующую запись и игнорирует дубликаты XML-данных. |
REPLACE | Загружает данные во временную таблицу путём слияния новых записей с существующими в таблице. При наличии конфликта уникальных ключей AVM заменяет существующие записи данными XML. |
Пример
lReturn = hds:READ-XML ("FILE", "myxml.xml", "APPEND",?,?).
Приведённый выше вызов метода указывает AVM на чтение данных из файла myxml.xml и добавление записей XML к находящимся в ProDataSet записям. При этом записи с повторяющимися уникальными ключами приведут к сбою вызова метода.