Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Импортирование данных из XML


DelphiLexx ©   (2007-08-06 12:18:00) 

Есть XML файл созданный моей программой, данными XML файла являются данные БД1  
Вот часть кода моего xml'a

<?xml version="1.0" encoding="Windows-1251" ?>
<Main>
<RAW_DICT>
   <RAW_DICT_ROW RAW_ID="4" RAW_GROUP_ID="5" RAW_NAME="Название сырья №1" DESCRIPTION="">
     <RAW_QM_VALUE>
       <RAW_QM_VALUE_ROW QM_ID="10" QM_VALUE="27"/>
       <RAW_QM_VALUE_ROW QM_ID="5" QM_VALUE="0"/>
       <RAW_QM_VALUE_ROW QM_ID="4" QM_VALUE="1.1"/>
       <RAW_QM_VALUE_ROW QM_ID="9" QM_VALUE="12"/>
     </RAW_QM_VALUE>
   </RAW_DICT_ROW>
</RAW_DICT>
<CONTENTS>
<CONTENTS_ROW RCP_CONTENTS_ID="-3142" RAW_ID="4" PERCENT="22">
 <RCP_QM_VALUE>
  <RCP_QM_VALUE_ROW QM_ID="47" QM_VALUE="183" />
  <RCP_QM_VALUE_ROW QM_ID="6" QM_VALUE="32.5" />
 </RCP_QM_VALUE>
</CONTENTS_ROW>
</CONTENTS>
</Main>

Дело в том что при вставке в БД2, (БД2 имеет идентичную стуктуру БД1), значение RAW_ID берется не из тэга <RAW_DICT_ROW>,  а из генератора таблицы RAW_DICT БД2, т.е. может взяться не 4 (для данного примера), а, например,  25. В связи с этим для корректного импорта необходимо в XML - документе заменить RAW_ID = 4, на RAW_ID = 25. Можно ли эти трюки делать средствами самого XML?


Reindeer Moss Eater   (2007-08-06 16:55:00) [1]

Да хоть трижды ключем и четырежды внешним.
Значение все равно будет взято из генератора в любом случае.


DelphiLexx   (2007-08-06 13:50:00) [2]


> А зачем менять значение в XML, если значение это все равно
> будет взято из генератора?

А затем, что это поле может быть внешним ключом (ссылкой), например RAW_GROUP_ID.

<?xml version="1.0" encoding="Windows-1251" ?>
<Main>
<RAW_GROUPS>
 <ROW RAW_GROUP_ID="1" PARENT="" SEQUENCE_ID="1" ></ROW>
...
 <ROW RAW_GROUP_ID="5" PARENT="2" SEQUENCE_ID="4"></ROW>
 <ROW RAW_GROUP_ID="6" PARENT="2" SEQUENCE_ID="5"></ROW>
...
 <ROW RAW_GROUP_ID="38" PARENT="3" SEQUENCE_ID="37"> </ROW>
</RAW_GROUPS>

<RAW_DICT>
  <RAW_DICT_ROW RAW_ID="4" RAW_GROUP_ID="5" RAW_NAME="Название сырья №1" DESCRIPTION="">
    <RAW_QM_VALUE>
      <RAW_QM_VALUE_ROW QM_ID="10" QM_VALUE="27"/>
      <RAW_QM_VALUE_ROW QM_ID="5" QM_VALUE="0"/>
      <RAW_QM_VALUE_ROW QM_ID="4" QM_VALUE="1.1"/>
      <RAW_QM_VALUE_ROW QM_ID="9" QM_VALUE="12"/>
    </RAW_QM_VALUE>
  </RAW_DICT_ROW>
</RAW_DICT>
...
</Main>


Reindeer Moss Eater   (2007-08-06 13:32:00) [3]

А зачем менять значение в XML, если значение это все равно будет взято из генератора?


Наверх

Титульная страница Поиск, карта сайта Написать письмо