XML. Как прочитать связанные таблицы
От: Аноним  
Дата: 31.05.07 12:11
Оценка:
Есть XML файл, примерно такой:


<?xml version="1.0" encoding="windows-1251"?>
<TABLE S_INCKEY="1">
     <FEILD1>TEMP1</FEILD1>
     <FEILD2>TEMP2</FEILD2>
     <FEILD3>
          <ADD_FEILD1>TEMP1.1<ADD_FEILD1>
          <ADD_FEILD2>TEMP1.2<ADD_FEILD2>
     </FEILD3>
</TABLE >
<TABLE S_INCKEY="2">
     <FEILD1>TEMP3</FEILD1>
     <FEILD2>TEMP4</FEILD2>
     <FEILD3>
          <ADD_FEILD1>TEMP2.1<ADD_FEILD1>
          <ADD_FEILD2>TEMP2.2<ADD_FEILD2>
     </FEILD3>
</TABLE >
......


Когда я читаю его методом DataSeta — ReadXML, то получается 2 не связанные таблицы. Но мне необходимо считывать учитывая данные связи. Может это можно сделать вручную?
Помогите плиз примером.
Re: XML. Как прочитать связанные таблицы
От: Аноним  
Дата: 01.06.07 12:07
Оценка:
Хотя бы в каком направлении копать?
Re[2]: XML. Как прочитать связанные таблицы
От: Lloyd Россия  
Дата: 01.06.07 12:09
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>Хотя бы в каком направлении копать?


Не совсем понятно, что ты хочешь.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[3]: XML. Как прочитать связанные таблицы
От: Аноним  
Дата: 01.06.07 13:43
Оценка:
Здравствуйте, Lloyd, Вы писали:

L>Не совсем понятно, что ты хочешь.


Есть XML файл, примерно такой:


<?xml version="1.0" encoding="windows-1251"?>
<TABLE S_INCKEY="1">
     <FEILD1>TEMP1</FEILD1>
     <FEILD2>TEMP2</FEILD2>
     <FEILD3>
          <ADD_FEILD1>TEMP1.1<ADD_FEILD1>
          <ADD_FEILD2>TEMP1.2<ADD_FEILD2>
     </FEILD3>
</TABLE >
<TABLE S_INCKEY="2">
     <FEILD1>TEMP3</FEILD1>
     <FEILD2>TEMP4</FEILD2>
     <FEILD3>
          <ADD_FEILD1>TEMP2.1<ADD_FEILD1>
          <ADD_FEILD2>TEMP2.2<ADD_FEILD2>
     </FEILD3>
</TABLE >
......


Прочитав его мне необходимо получить следующее:
Таблица1: TABLE
--------------------------
FEILD1 | FEILD2 | FEILD3 |
--------------------------
TEMP1 | TEMP2 | ключ1 |
--------------------------
TEMP3 | TEMP4 | ключ2 |
--------------------------

И Таблица2:
------------------------------------
<ADD_FEILD1> | <ADD_FEILD2> | Ключ |
------------------------------------
TEMP1.1 | TEMP1.2 | ключ1|
------------------------------------
TEMP2.1 | TEMP2.2 | ключ2|
------------------------------------

Т.е. мне необходимо получить 2 связанные таблицы. Вообще я не понимаю как можно вручную, по очереди считывать
сначала все что относится к <TABLE S_INCKEY="1">, потом все что относится к <TABLE S_INCKEY="2">, тем самым формируя запись для Таблицы1 и относящиеся к ней записи из таблицы2.
Re[4]: XML. Как прочитать связанные таблицы
От: Lloyd Россия  
Дата: 01.06.07 13:47
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>Т.е. мне необходимо получить 2 связанные таблицы.


Что такое связанные таблицы и где вы их хотите получить?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[5]: XML. Как прочитать связанные таблицы
От: Аноним  
Дата: 01.06.07 13:57
Оценка:
Здравствуйте, Lloyd, Вы писали:

L>Что такое связанные таблицы и где вы их хотите получить?


Хочу их получить в ДатаСете, а вообще без разницы.
Самое лучше это читать частями, т.е. сначала получить и разобрать по полям все что относится к
<TABLE S_INCKEY="1">
<FEILD1>TEMP1</FEILD1>
<FEILD2>TEMP2</FEILD2>
<FEILD3>
<ADD_FEILD1>TEMP1.1<ADD_FEILD1>
<ADD_FEILD2>TEMP1.2<ADD_FEILD2>
</FEILD3>
</TABLE >

потом все
<TABLE S_INCKEY="2">
<FEILD1>TEMP3</FEILD1>
<FEILD2>TEMP4</FEILD2>
<FEILD3>
<ADD_FEILD1>TEMP2.1<ADD_FEILD1>
<ADD_FEILD2>TEMP2.2<ADD_FEILD2>
</FEILD3>
</TABLE >

и т.д.
Под связанными таблицами понимаю то что у одной есть primary key, а у второй foreign key. По ключам осуществялется связь
Re[6]: XML. Как прочитать связанные таблицы
От: Lloyd Россия  
Дата: 01.06.07 14:03
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>Под связанными таблицами понимаю то что у одной есть primary key, а у второй foreign key. По ключам осуществялется связь


Приведенный xml не содержит информации о ключах. Просто добавь их в коде, или используй типизированный датасет.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[7]: XML. Как прочитать связанные таблицы
От: Аноним  
Дата: 01.06.07 14:18
Оценка:
Здравствуйте, Lloyd, Вы писали:

L>Здравствуйте, <Аноним>, Вы писали:


А>>Под связанными таблицами понимаю то что у одной есть primary key, а у второй foreign key. По ключам осуществялется связь


L>Приведенный xml не содержит информации о ключах. Просто добавь их в коде, или используй типизированный датасет.


А как можно кусками считывать?
Чтобы выставлять ключи
Re[8]: XML. Как прочитать связанные таблицы
От: Lloyd Россия  
Дата: 01.06.07 14:23
Оценка:
Здравствуйте, <Аноним>, Вы писали:

L>>Приведенный xml не содержит информации о ключах. Просто добавь их в коде, или используй типизированный датасет.


А>А как можно кусками считывать?

А>Чтобы выставлять ключи

Ниче не понял. Попробуй еще раз.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[9]: XML. Как прочитать связанные таблицы
От: Аноним  
Дата: 01.06.07 14:40
Оценка:
Здравствуйте, Lloyd, Вы писали:

L>Ниче не понял. Попробуй еще раз.


Вот файл
<?xml version="1.0" encoding="windows-1251"?>
<TABLE S_INCKEY="1">
     <FEILD1>TEMP1</FEILD1>
     <FEILD2>TEMP2</FEILD2>
     <FEILD3>
          <ADD_FEILD1>TEMP1.1<ADD_FEILD1>
          <ADD_FEILD2>TEMP1.2<ADD_FEILD2>
     </FEILD3>
</TABLE >
<TABLE S_INCKEY="2">
     <FEILD1>TEMP3</FEILD1>
     <FEILD2>TEMP4</FEILD2>
     <FEILD3>
          <ADD_FEILD1>TEMP2.1<ADD_FEILD1>
          <ADD_FEILD2>TEMP2.2<ADD_FEILD2>
     </FEILD3>
</TABLE >
......


Как мне сначала считать все между тегами <TABLE S_INCKEY="1"> ... </TABLE >. Потом между тегами <TABLE S_INCKEY="2"> ... </TABLE > и т.д. Причем считывая распознавать получаемые поля.
Re[10]: XML. Как прочитать связанные таблицы
От: Lloyd Россия  
Дата: 01.06.07 14:44
Оценка: +1 :)
Здравствуйте, <Аноним>, Вы писали:

А>Как мне сначала считать все между тегами <TABLE S_INCKEY="1"> ... </TABLE >. Потом между тегами <TABLE S_INCKEY="2"> ... </TABLE > и т.д. Причем считывая распознавать получаемые поля.


Для чего?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[11]: XML. Как прочитать связанные таблицы
От: Аноним  
Дата: 04.06.07 06:28
Оценка:
Здравствуйте, Lloyd, Вы писали:

L>Здравствуйте, <Аноним>, Вы писали:


А>>Как мне сначала считать все между тегами <TABLE S_INCKEY="1"> ... </TABLE >. Потом между тегами <TABLE S_INCKEY="2"> ... </TABLE > и т.д. Причем считывая распознавать получаемые поля.


L>Для чего?


Если подробней. У меня есть dll, которую я использую для складывания данных в базу. Поэтому необходимо вынимать данные такими кусками и каждый кусок сохранять в базу.
Re[12]: XML. Как прочитать связанные таблицы
От: Lloyd Россия  
Дата: 04.06.07 09:06
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>>>Как мне сначала считать все между тегами <TABLE S_INCKEY="1"> ... </TABLE >. Потом между тегами <TABLE S_INCKEY="2"> ... </TABLE > и т.д. Причем считывая распознавать получаемые поля.


L>>Для чего?


А>Если подробней. У меня есть dll, которую я использую для складывания данных в базу. Поэтому необходимо вынимать данные такими кусками и каждый кусок сохранять в базу.


Почему именно кусками? Ты же что-то про датасет говорил.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[13]: XML. Как прочитать связанные таблицы
От: Аноним  
Дата: 04.06.07 09:10
Оценка:
Здравствуйте, Lloyd, Вы писали:

L>Здравствуйте, <Аноним>, Вы писали:


А>>>>Как мне сначала считать все между тегами <TABLE S_INCKEY="1"> ... </TABLE >. Потом между тегами <TABLE S_INCKEY="2"> ... </TABLE > и т.д. Причем считывая распознавать получаемые поля.


L>>>Для чего?


А>>Если подробней. У меня есть dll, которую я использую для складывания данных в базу. Поэтому необходимо вынимать данные такими кусками и каждый кусок сохранять в базу.


L>Почему именно кусками? Ты же что-то про датасет говорил.


Два вариента
1) Кусками
2) В датасет, в котором будут 2 связанные таблицы, с той целью чтобы потом поэлементно по нему пробежаться и закинуть все в базу.
Re[14]: XML. Как прочитать связанные таблицы
От: Lloyd Россия  
Дата: 04.06.07 09:26
Оценка:
Здравствуйте, <Аноним>, Вы писали:

L>>Почему именно кусками? Ты же что-то про датасет говорил.


А>Два вариента

А>1) Кусками
А>2) В датасет, в котором будут 2 связанные таблицы, с той целью чтобы потом поэлементно по нему пробежаться и закинуть все в базу.

Ну так воспользуйся вторым вариантом. Или с ним тоже какие-то проблемы?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[15]: XML. Как прочитать связанные таблицы
От: Аноним  
Дата: 04.06.07 09:29
Оценка: :)
Здравствуйте, Lloyd, Вы писали:

L>Здравствуйте, <Аноним>, Вы писали:


L>>>Почему именно кусками? Ты же что-то про датасет говорил.


А>>Два вариента

А>>1) Кусками
А>>2) В датасет, в котором будут 2 связанные таблицы, с той целью чтобы потом поэлементно по нему пробежаться и закинуть все в базу.

L>Ну так воспользуйся вторым вариантом. Или с ним тоже какие-то проблемы?


Да, проблема
Дело в том, что когда я загружаю в датасет то таблицы получаются не связанные. Надо как-то в ручную считывать...
Re[16]: XML. Как прочитать связанные таблицы
От: Lloyd Россия  
Дата: 04.06.07 09:48
Оценка:
Здравствуйте, <Аноним>, Вы писали:

L>>Ну так воспользуйся вторым вариантом. Или с ним тоже какие-то проблемы?


А>Да, проблема

А>Дело в том, что когда я загружаю в датасет то таблицы получаются не связанные. Надо как-то в ручную считывать...

Я вроде тебе написал уже, что нужно или вручную создать связи, или использовать типизированный датасет.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[16]: XML. Как прочитать связанные таблицы
От: Sinclair Россия https://github.com/evilguest/
Дата: 04.06.07 10:00
Оценка:
Здравствуйте, <Аноним>, Вы писали:
А>Да, проблема
А>Дело в том, что когда я загружаю в датасет то таблицы получаются не связанные. Надо как-то в ручную считывать...
В тех примерах, которые ты привел, таблицы никак не связаны. Поэтому и непонятно, чего ты хочешь получить.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[17]: XML. Как прочитать связанные таблицы
От: Аноним  
Дата: 04.06.07 10:55
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Здравствуйте, <Аноним>, Вы писали:

А>>Да, проблема
А>>Дело в том, что когда я загружаю в датасет то таблицы получаются не связанные. Надо как-то в ручную считывать...
S>В тех примерах, которые ты привел, таблицы никак не связаны. Поэтому и непонятно, чего ты хочешь получить.

Может я не так понимаю как отобразить связанные таблицы в XML. Если сохранять их датасетовским методом, то в выходном файле остатся записи о ключах, которые мне не нужны.

Вот 2 таблицы

t1:
id
text

t2:
id
text
id1_in_t1


По полю id1_in_t1 вторая таблица связана с первой.
Связь такого же плана отображена в xml файле. Вопрос в том как считывать полученный файл.

А вообще задача заключается в том чтобы сделать импорт и экспорт из своей базы в заданный xml файл.
Re[18]: XML. Как прочитать связанные таблицы
От: Sinclair Россия https://github.com/evilguest/
Дата: 04.06.07 11:25
Оценка:
Здравствуйте, <Аноним>, Вы писали:
А>Может я не так понимаю как отобразить связанные таблицы в XML. Если сохранять их датасетовским методом, то в выходном файле остатся записи о ключах, которые мне не нужны.
Таак, теперь пошла уже запись в XML, который до сих пор мы только читали.
Постарайся сосредоточиться (крайне рекомендую отказаться от препаратов, искажающих сознание), перечитать свои постинги и 1 (один) раз внятно объяснить, что тебе нужно, а не что ты делаешь. Какие записи? Куда остаются? Зачем тебе отображать что-то куда-то? Ты не знаешь, как добавлять констреинты в DataTable.Constraints?
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.