Здравствуйте, <Аноним>, Вы писали:
А>Как мне сначала считать все между тегами <TABLE S_INCKEY="1"> ... </TABLE >. Потом между тегами <TABLE S_INCKEY="2"> ... </TABLE > и т.д. Причем считывая распознавать получаемые поля.
Для чего?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[15]: XML. Как прочитать связанные таблицы
От:
Аноним
Дата:
04.06.07 09:29
Оценка:
Здравствуйте, Lloyd, Вы писали:
L>Здравствуйте, <Аноним>, Вы писали:
L>>>Почему именно кусками? Ты же что-то про датасет говорил.
А>>Два вариента А>>1) Кусками А>>2) В датасет, в котором будут 2 связанные таблицы, с той целью чтобы потом поэлементно по нему пробежаться и закинуть все в базу.
L>Ну так воспользуйся вторым вариантом. Или с ним тоже какие-то проблемы?
Да, проблема
Дело в том, что когда я загружаю в датасет то таблицы получаются не связанные. Надо как-то в ручную считывать...
Когда я читаю его методом DataSeta — ReadXML, то получается 2 не связанные таблицы. Но мне необходимо считывать учитывая данные связи. Может это можно сделать вручную?
Помогите плиз примером.
Т.е. мне необходимо получить 2 связанные таблицы. Вообще я не понимаю как можно вручную, по очереди считывать
сначала все что относится к <TABLE S_INCKEY="1">, потом все что относится к <TABLE S_INCKEY="2">, тем самым формируя запись для Таблицы1 и относящиеся к ней записи из таблицы2.
Здравствуйте, <Аноним>, Вы писали:
А>Т.е. мне необходимо получить 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. По ключам осуществялется связь
Здравствуйте, <Аноним>, Вы писали:
А>Под связанными таблицами понимаю то что у одной есть 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 не содержит информации о ключах. Просто добавь их в коде, или используй типизированный датасет.
А как можно кусками считывать?
Чтобы выставлять ключи
Здравствуйте, <Аноним>, Вы писали:
L>>Приведенный xml не содержит информации о ключах. Просто добавь их в коде, или используй типизированный датасет.
А>А как можно кусками считывать? А>Чтобы выставлять ключи
Ниче не понял. Попробуй еще раз.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[9]: XML. Как прочитать связанные таблицы
От:
Аноним
Дата:
01.06.07 14:40
Оценка:
Здравствуйте, Lloyd, Вы писали:
L>Ниче не понял. Попробуй еще раз.
Как мне сначала считать все между тегами <TABLE S_INCKEY="1"> ... </TABLE >. Потом между тегами <TABLE S_INCKEY="2"> ... </TABLE > и т.д. Причем считывая распознавать получаемые поля.
Re[11]: XML. Как прочитать связанные таблицы
От:
Аноним
Дата:
04.06.07 06:28
Оценка:
Здравствуйте, Lloyd, Вы писали:
L>Здравствуйте, <Аноним>, Вы писали:
А>>Как мне сначала считать все между тегами <TABLE S_INCKEY="1"> ... </TABLE >. Потом между тегами <TABLE S_INCKEY="2"> ... </TABLE > и т.д. Причем считывая распознавать получаемые поля.
L>Для чего?
Если подробней. У меня есть dll, которую я использую для складывания данных в базу. Поэтому необходимо вынимать данные такими кусками и каждый кусок сохранять в базу.
Здравствуйте, <Аноним>, Вы писали:
А>>>Как мне сначала считать все между тегами <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 связанные таблицы, с той целью чтобы потом поэлементно по нему пробежаться и закинуть все в базу.
Здравствуйте, <Аноним>, Вы писали:
L>>Почему именно кусками? Ты же что-то про датасет говорил.
А>Два вариента А>1) Кусками А>2) В датасет, в котором будут 2 связанные таблицы, с той целью чтобы потом поэлементно по нему пробежаться и закинуть все в базу.
Ну так воспользуйся вторым вариантом. Или с ним тоже какие-то проблемы?
Здравствуйте, <Аноним>, Вы писали:
L>>Ну так воспользуйся вторым вариантом. Или с ним тоже какие-то проблемы?
А>Да, проблема А>Дело в том, что когда я загружаю в датасет то таблицы получаются не связанные. Надо как-то в ручную считывать...
Я вроде тебе написал уже, что нужно или вручную создать связи, или использовать типизированный датасет.
Здравствуйте, <Аноним>, Вы писали: А>Да, проблема А>Дело в том, что когда я загружаю в датасет то таблицы получаются не связанные. Надо как-то в ручную считывать...
В тех примерах, которые ты привел, таблицы никак не связаны. Поэтому и непонятно, чего ты хочешь получить.
... << 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 файл.
Здравствуйте, <Аноним>, Вы писали: А>Может я не так понимаю как отобразить связанные таблицы в XML. Если сохранять их датасетовским методом, то в выходном файле остатся записи о ключах, которые мне не нужны.
Таак, теперь пошла уже запись в XML, который до сих пор мы только читали.
Постарайся сосредоточиться (крайне рекомендую отказаться от препаратов, искажающих сознание), перечитать свои постинги и 1 (один) раз внятно объяснить, что тебе нужно, а не что ты делаешь. Какие записи? Куда остаются? Зачем тебе отображать что-то куда-то? Ты не знаешь, как добавлять констреинты в DataTable.Constraints?
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[19]: XML. Как прочитать связанные таблицы
От:
Аноним
Дата:
04.06.07 13:58
Оценка:
Здравствуйте, Sinclair, Вы писали:
S>Здравствуйте, <Аноним>, Вы писали: А>>Может я не так понимаю как отобразить связанные таблицы в XML. Если сохранять их датасетовским методом, то в выходном файле остатся записи о ключах, которые мне не нужны. S>Таак, теперь пошла уже запись в XML, который до сих пор мы только читали. S>Постарайся сосредоточиться (крайне рекомендую отказаться от препаратов, искажающих сознание), перечитать свои постинги и 1 (один) раз внятно объяснить, что тебе нужно, а не что ты делаешь. Какие записи? Куда остаются? Зачем тебе отображать что-то куда-то?
Ok, постараюсь.
S> Ты не знаешь, как добавлять констреинты в DataTable.Constraints?
знаю
Начну с самого начала.
В моей клиентской программе отображаются три связанные таблички. Все связи добавлены в DataSet и все работает нормально. Стоит задача — обеспечить возможность экспорта этих табличек в XML(в определенном виде), а также импорта данных из XML файла(который также создан в определенном виде).
Экспорт данных в XML я сделал. Т.к. метод DataSet.WriteXml мне не подошел, потому что требуется определенный вид выходного XML файла, то экспорт пришлось сделать вручную.
Теперь осталось сделать импорт из XML файла с заданной структурой.
Вот такую структуру XML файла от меня требуют:
<?xml version="1.0" encoding="windows-1251"?>
<EXPORT> - это основной нод
<CODE_TABLE S_INCKEY="1"> - это имя таблицы и проперти в виде имени ключа и его значения
<CODE>code1</CODE>
<CREATEDT>23.05.2007 10:15:37</CREATEDT>
.........
<ADD_CODE1> - вот здесь начинается перечисление записей ПЕРВОЙ зависимой таблицы которые соответсвуют S_INCKEY="1"
.........
</ADD_CODE1>
<ADD_CODE1> - следующая строчка зависимой таблицы и т.д.
.........
</ADD_CODE1>
<ADD_CODE1>
.........
</ADD_CODE1>
... и т.д.
<ADD_CODE2> - вот здесь начинается перечисление записей ВТОРОЙ зависимой таблицы которые соответсвуют S_INCKEY="1"
.........
</ADD_CODE2>
... и т.д.
</CODE_TABLE>
далее идет следующая запись CODE_TABLE, уже с другим ключем (S_INCKEY="2") и т.д.
....
</EXPORT>
Такую структуру я сформировал вручную из ДатаСета, в котором отображаются 3 зависимые таблицы.
Теперь надо прочитать такой XML файл и сформировать из него ДатаСет из 3х зависимых таблиц.
Или построчно читать XML файл следующим образом: прочитать запись CODE_TABLE которая соответствует S_INCKEY="1" и добавить ее в базу и так до конца.
Вот именно с этим этапом у меня возникли затруднения.
Здравствуйте, <Аноним>, Вы писали:
А>Такую структуру я сформировал вручную из ДатаСета, в котором отображаются 3 зависимые таблицы. А>Теперь надо прочитать такой XML файл и сформировать из него ДатаСет из 3х зависимых таблиц. А>Или построчно читать XML файл следующим образом: прочитать запись CODE_TABLE которая соответствует S_INCKEY="1" и добавить ее в базу и так до конца. А>Вот именно с этим этапом у меня возникли затруднения.
Смотри класс XmlDocument. А лучше — написать xslt, который перегонит твой xml в xml, кторый сможет обработать DataSet.ReadXml.
Как видно, таблица Table2 "вложена" в Table1.
Когда я загружаю схему в DataSet с помощью ReadXmlSchema, в обеих таблицах автоматически создаются поля Table1_Id и формируется связь Table2.Table1_Id -> Table1.Table1_Id.
Теперь мне нужно как-то научиться управлять созданием этого ключа. Т.е. самому описать в XSD какие именно поля должны связывать таблицы.
Здравствуйте, <Аноним>, Вы писали:
А>Есть XML файл, примерно такой:
А>Когда я читаю его методом DataSeta — ReadXML, то получается 2 не связанные таблицы. Но мне необходимо считывать учитывая данные связи. Может это можно сделать вручную?
перед тем как загружать xml, загрузи вначале в датасет схему данных (XSD), где у тебя будет описана связь таблиц...